Jest单元测试-未找到测试

6

我将要开始使用Jest进行单元测试。 运行Jest单元测试时一直提示“未找到测试”。

错误描述

yarn test
    yarn run v1.3.2
    $ jest
    No tests found
    In E:\Course\Testing JavaScript\Jest Demo
      4 files checked.
      testMatch: **/__tests__/**/*.js?(x),**/?(*.)(spec|test).js?(x) - 3 matches
      testPathIgnorePatterns: \\node_modules\\ - 4 matches
    Pattern:  - 0 matches
    error Command failed with exit code 1.

操作系统:Windows 7, Node.js版本:8.6, npm版本:5.4.2

folder structure :
Demo 
    package.json
    __tests__
           sum.js
           sum.test.js

sum.js文件:

function sum(a, b) {
  return a + b;
}
module.exports = sum;

sum.test.js

const sum = require("./sum");

test("adds 1 + 2 to equal 3", () => {
  expect(sum(1, 2)).toBe(3);
});

package.json

{
  "name": "JestDemo",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "jest": "^22.4.3"
  },
  "scripts": {
    "test": "jest"
  }
}

到目前为止,我已经参考了这些文章:Stackoverflow-Jest找不到测试。还在GitHub上看了几篇有关相同问题的帖子,但没有什么帮助。
目前为止我所做的是:
1) 更改脚本指向包含测试文件的文件夹:
"scripts": {
    "test": "jest __test__"  // 
     from "test": "jest"
  }

2) 尝试更改文件夹结构。

能有人帮我找出问题吗?


1
/tests文件夹中的所有测试移动。 - sensorario
1
@sensorario - 这个可行。在所有正式文档中,tests 被提及为默认文件夹,但对我来说并不起作用。你应该将其发布为答案而不是评论。我会接受这个作为答案。 - Deen John
1
我已经更新了我的答案,并附上了一部分配置。希望这可以帮到你。 - sensorario
1个回答

11

看起来您把代码文件和测试文件都放在了同一个目录下(__tests__/sum.js__tests__/sum.test.js)。我不认为这是你遇到的失败的特定原因,但这不是惯例。

除非项目已经完成,否则不应该需要指定要搜索的文件夹。只需运行jest而没有任何参数(除了必要选项),它将搜索当前目录及其子目录。

惯例是:

/root
  /src
    sum.js
    /__tests__
      sum.js
或:
/root
  /src
    sum.js
    sum.test.js
你可以在后一个示例中使用testspecrootsrc由您决定,root通常是package.json的位置,并且是您从该处调用jest的位置(例如myApp)。 src有助于区分其他应用程序组件,如构建和资源。

完美,对我来说是--watch标志。谢谢! - Lianel
哦,我的天啊,谢谢 Dave。我花了几个小时搜索,你的评论是我找到的唯一一个说“如果文件在 __tests__ 目录下,删除 *.test.js”的东西。谢谢! - Blakey UK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接