我能够使用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"
}
}
在特定文件中运行特定测试:
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");
})
})
如果你使用Yarn,你可以在下面直接添加.spec.js或.test.js文件:
yarn test src/lib/myfile.test.js
这是我包裹里的零件。Jest作为本地包安装在json文件中(删除了相关部分):
{
...
"scripts": {
"test": "jest",
"testw": "jest --watch",
"testc": "jest --coverage",
...
},
"devDependencies": {
"jest": "^18.1.0",
...
},
}
对于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"
}
}