- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 changedSince和 onlyChanged Jest 标志。我更改了很多测试以及测试所依赖的文件。根据 jest cli 标志的文档:
changedSince: Runs tests related the changes since the provided branch. If the current branch has diverged from the given branch, then only changes made locally will be tested.
onlyChanged: Alias -o. Attempts to identify which tests to run based on which files have changed in the current repository. Only works if you're running tests in a git/hg repository at the moment and requires a static dependency graph (ie. no dynamic requires).
但是当我运行 jest --changedSince=master
或 jest --onlyChanged
时,它运行了 0 个测试,而根本没有在终端中提供任何内容。
jest --listTests
列出所有测试。但是,当我运行 jest --listTests --changedSince=master
或 jest --listTests --onlyChanged
时,它没有列出任何测试。
最佳答案
我发现 --changedSince
和 --onlyChanged
也有点古怪。但是,您可以使用 lint-staged和 Jest 的 --findRelatedTests
并将其添加到预提交 Hook 。
--findRelatedTests {spaceSeparatedListOfSourceFiles}: Find and run the tests that cover a space separated list of source files that were passed in as arguments. Useful for pre-commit hook integration to run the minimal amount of tests necessary. Can be used together with --coverage to include a test coverage for the source files, no duplicate --collectCoverageFrom arguments needed.
这是您需要在 package.json
文件中进行的更改。
{
"scripts": {
"test": "CI=true jest",
"test:staged": "CI=true jest --env=jsdom --findRelatedTests"
}
}
还有,
"lint-staged": {
"src/**/*.js": [
"test:staged",
"git add"
]
}
这样,在每次提交时,Jest 将只对相关的源文件运行测试。不要忘记设置 CI=true
环境变量,否则您的测试将以监视模式运行并且永远不会结束。
如果你仍然想运行全套测试 npm test
就可以了。此外,当您推送到分支或发送 pull 请求时,最好有一个 CI 环境来运行所有测试。
关于git - 如何 Jest 使用 --changedSince 和 --onlyChanged?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51787779/
我想使用 changedSince和 onlyChanged Jest 标志。我更改了很多测试以及测试所依赖的文件。根据 jest cli 标志的文档: changedSince: Runs test
我是一名优秀的程序员,十分优秀!