4

这是我的 package.json:

"jest": {
   "cacheDirectory": "/tmp/jestCache",
   "scriptPreprocessor": "node_modules/babel-jest",
   "modulePaths": [
      "<rootDir>/app/static/react/"
   ],
   "moduleDirectories": [
      "node_modules",
      "app/static/react/app"
   ],
   "testPathDirs": [
      "app/static/react/__tests__"
   ],
   "testRegex": "(.*Tests?\\.jsx?)$"
}

当我运行jest --verbose时,测试运行,但据我所知,除了抛出错误之外,没有办法与标准输出进行任何通信。console.log本身并不存在。我正在使用 jest 16.0.2。我读到最近有一些关于自动模拟和控制台缓冲的变化,但似乎我错过了一些更基本的东西。

否则测试运行良好。

在 OSX Yosemite、节点 7.4、npm 4.0.5 上工作。

4

1 回答 1

-2

我觉得你有太多的配置覆盖了默认值。jest 很棒的原因之一是它开箱即用。首先我会更新到最新版本的 jest18.0.1和 babel-jest 17.0.2,然后我会尝试使用默认配置。

jest: {

},

由于您正在使用babel-jest,您根本不必在配置中指定它。开玩笑会捡起来的。确保你有一个.babelrc与虽然相同的级别package.json

testPathDirstestRegex默认为["<rootDir>"](/__tests__/.*|(\\.|/)(test|spec))\\.jsx?$所以我认为你也不需要那个。也moduleDirectories默认为,["node_modules"]因此您也应该对此感到满意。

我肯定会改变的其他东西是您的来源的路径。app/static/react/app对我来说似乎有点奇怪(我不确定 jest 是否因为react在你的路径中而感到困惑)。类似的东西app/static/src/会更有意义。此外,我会将测试移至app/static/src/__tests__/.

我知道这个答案可能听起来太笼统了,但我肯定会从不覆盖默认配置开始。

于 2017-01-15T12:12:12.900 回答