Jest单元测试 - 未找到测试

时间:2018-03-31 04:50:34

标签: javascript unit-testing jestjs

我开始使用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.

os:窗口7, 节点v:8.6, npm v: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 No Tests found

关于同一问题,github上还有一些帖子,但没有任何帮助。

到目前为止我做了什么:

1)将脚本更改为指向包含测试文件的文件夹:

"scripts": {
    "test": "jest __test__"  // 
     from "test": "jest"
  }

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

有人可以帮我解决问题吗?

2 个答案:

答案 0 :(得分:2)

您似乎已将代码和测试文件放在同一目录(__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有助于区分其他应用组件,例如构建和资产。

答案 1 :(得分:0)

只需在/test文件夹中移动所有测试即可。这是我用jest测试的项目的一部分配置。希望这可以提供帮助。

{
  "dependencies": {
    "jest": "^22.1.4"
  },
  "jest": { },
  "scripts": {
    "test": "jest"
  }
}