如何在单元测试反应中使用Karma和Jest?

时间:2017-08-14 12:49:47

标签: reactjs karma-runner babel enzyme jest

我正在测试已经开发的React应用程序。该应用程序有一些用Karma编写的单元测试用例,但我将使用Jest对应用程序进行单元测试,因为它是由facebook开发的用于测试React的新框架。我面临的问题是文件.babelrc。为了让Jest运行正常,.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测试用例停止运行。有没有办法可以同时使用两者,直到我在Jest中重写现有的测试用例?

1 个答案:

答案 0 :(得分:1)

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

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