Pra*_*vin 5 git testing unit-testing jestjs
我想用changedSince和onlyChanged标志开玩笑。我更改了许多测试以及测试所依赖的文件。根据 jest cli 标志的文档:
changedSince:运行与自提供分支以来的更改相关的测试。如果当前分支与给定分支有分歧,则只会测试本地所做的更改。
onlyChanged : 别名 -o。尝试根据当前存储库中已更改的文件来确定要运行的测试。仅当您目前在 git/hg 存储库中运行测试并且需要静态依赖关系图(即没有动态需要)时才有效。
但是当我运行jest --changedSince=master
或jest --onlyChanged
它运行 0 个测试时,根本没有在终端中提供任何内容。
jest --listTests
列出所有测试。但是,当我运行jest --listTests --changedSince=master
or 时jest --listTests --onlyChanged
,它没有列出任何测试。
我发现--changedSince
并且--onlyChanged
也有点时髦。但是,您可以做的是使用lint-staged和 Jest--findRelatedTests
并将其添加到预提交挂钩中。
--findRelatedTests {spaceSeparatedListOfSourceFiles}:查找并运行覆盖作为参数传入的以空格分隔的源文件列表的测试。对于预提交钩子集成以运行最少数量的必要测试很有用。可以与 --coverage 一起使用以包含源文件的测试覆盖率,不需要重复的 --collectCoverageFrom 参数。
这是您需要在package.json
文件中进行的更改。
{
"scripts": {
"test": "CI=true jest",
"test:staged": "CI=true jest --env=jsdom --findRelatedTests"
}
}
Run Code Online (Sandbox Code Playgroud)
和,
"lint-staged": {
"src/**/*.js": [
"test:staged",
"git add"
]
}
Run Code Online (Sandbox Code Playgroud)
这样,在每次提交时,Jest 只会对相关的源文件运行测试。不要忘记设置CI=true
环境变量,否则您的测试将以监视模式运行并且永远不会结束。
如果你仍然想运行全套测试npm test
就可以了。此外,当您推送到分支或发送拉取请求时,最好有一个 CI 环境来运行所有测试。
归档时间: |
|
查看次数: |
7084 次 |
最近记录: |