笑话单元测试-未找到测试

Dee*_*ohn 3 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.
Run Code Online (Sandbox Code Playgroud)

os:窗口7,节点v:8.6,npm v:5.4.2

folder structure :
Demo 
    package.json
    __tests__
           sum.js
           sum.test.js
Run Code Online (Sandbox Code Playgroud)

sum.js文件:

function sum(a, b) {
  return a + b;
}
module.exports = sum;
Run Code Online (Sandbox Code Playgroud)

sum.test.js

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

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

package.json

{
  "name": "JestDemo",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "jest": "^22.4.3"
  },
  "scripts": {
    "test": "jest"
  }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经引用了这些文章 Stackoverflow-Jest未找到测试

在github上也有一些关于相同问题的文章,但是没有任何帮助。

我到目前为止所做的:

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

"scripts": {
    "test": "jest __test__"  // 
     from "test": "jest"
  }
Run Code Online (Sandbox Code Playgroud)

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

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

Dav*_*han 6

您似乎已经将代码文件和测试文件都放在了相同的目录(__tests__/sum.js__tests__/sum.test.js)中。我认为这不是您看到失败的特定原因,但不是惯例。

除非您的项目完成,否则不必指定要搜索的文件夹。运行时jest不带任何参数(必要的选项除外),它将在下面搜索当前目录。

约定是:

/root
  /src
    sum.js
    /__tests__
      sum.js
Run Code Online (Sandbox Code Playgroud)

要么:

/root
  /src
    sum.js
    sum.test.js
Run Code Online (Sandbox Code Playgroud)

您可以在后一个示例中使用testspecrootsrc取决于您,root通常是的位置,package.json也是您从中调用笑话的位置(例如myApp)。 src帮助与其他应用程序组件(例如内部版本和资产)区分开来。