我能够使用Jest测试多个文件,但我不知道如何测试单个文件。

我有:

执行npm install jest-cli——save-dev命令 更新包。Json: '{…"scripts": {"test": "jest"}…} 编写了许多测试。

运行npm测试可以正常工作(目前运行14个测试)。

如何测试单个文件,例如test app/foo/__tests__/bar.spec.js?

我已经尝试运行npm test app/foo/__tests__/bar.spec.js(从项目根),但我得到以下错误:

npm犯错!错误:ENOENT,打开'/node_modules/app/foo/tests/bar.spec.js/package.json'


当前回答

对于NestJS用户,简单的替代方法是使用,

npm test -t <name of the spec file to run>

NestJS预先配置了测试文件的正则表达式,以便在Jest的情况下搜索。

一个简单的例子是-

npm test -t app-util.spec.ts

(这是我的。spec文件名)

不需要给出完整的路径,因为Jest会根据NestJS默认可用的配置来搜索.spec文件:

"jest": {
    "moduleFileExtensions": [
      "js",
      "json",
      "ts"
    ],
    "rootDir": "src",
    "testRegex": ".spec.ts$",
    "transform": {
      "^.+\\.(t|j)s$": "ts-jest"
    },
    "coverageDirectory": "../coverage",
    "testEnvironment": "node"
  }
}

其他回答

我只是将Jest安装为全局,运行Jest myFileToTest.spec.js,它工作了。

也可以通过以下方法实现:

jest --findRelatedTests path/to/fileA.js

参考(Jest CLI选项)

如何在Nx monorepo中实现呢?下面是答案(在目录/path/to/workspace中):

npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts

参考和更多信息:如何在nx# 6中测试单个Jest测试文件

在特定文件中运行特定测试:

yarn test -f "partial-filename" -t "as split node"

npm测试,或笑话可以取代纱线测试,这取决于你喜欢的JS捆绑器。

这将只尝试在包含some-partial-filename的文件中查找测试,并且在这些文件中,测试将需要有一个describe或it指令,例如提到“作为分割节点”

// In cool-partial-filename.js
describe("with a less indented sibling", () => {
  it("should create a new check-list-item with the same indent as split node", () => {
    console.log("This would run with the invocation above");
  })
})

“test”: “jest api/ds_server/ds_server.test.js”

当时我用的是:

yarn test TestFileName.spec.js

你不应该输入完整路径。对我来说,这在Windows 10电脑上是可行的。