如何在单元测试 React 应用程序中同时使用 Karma 和 Jest?

How to use Karma and Jest together in unit testing React application?

我正在测试已经开发的 React 应用程序。该应用程序有一些用 Karma 编写的单元测试用例,但我将使用 Jest 对应用程序进行单元测试,因为它是 facebook 开发的用于测试 React 的新框架。我面临的问题是因为文件 .babelrc。为了 Jest 运行 fine .babelrc 文件的内容应该如下:

// .babelrc
{
  "presets": ["es2015", "react"]
}

但我现有的应用程序使用 Karma 并具有如下 babelrc 文件内容:

{
  "presets": [
   "es2015",
    "react",
    "stage-0"
  ]
, "plugins": [
    "transform-object-rest-spread"
  , "transform-decorators-legacy"
  , "transform-es2015-modules-amd"
  ]
}

当前 babelrc 文件不允许 Jest 正确 运行 并导致错误。但问题是我无法按照 Jest 的要求修改其内容,因为它会妨碍我的 Karma 测试用例停止 运行ning。在我用 Jest 重写现有测试用例之前,有没有一种方法可以同时使用两者?

我能够 运行 将 Karma 和 Jest 放在一起,所以想到了分享。我按如下方式配置了 babelrc 文件:

{
  "env": {
    "test": {
      "presets": [
        "es2015",
        "react"
      ]
    },
    "development": {
      "presets": [
        "es2015",
        "react"
      ],
      "plugins": [
        ............
      ]
    },
    "production": {
      "presets": [
        "es2015",
        "react"
      ],
      "plugins": [
        ...............
      ]
    }
  }
}