我试图在Team City中运行我的Jest单元测试,但最终总是得到如下所示的提示。
No tests found related to files changed since last commit.
Press `a` to run all tests, or run Jest with `--watchAll`.
Watch Usage
› Press a to run all tests.
› Press f to run only failed tests.
› Press p to filter by a filename regex pattern.
› Press t to filter by a test name regex pattern.
› Press q to quit watch mode.
› Press Enter to trigger a test run.
我尝试运行yarn test a
来运行所有测试。但是一旦测试完成执行,我仍然会收到相同的提示。我尝试了yarn test a q
,但是没有用。我也尝试了yarn test a --forceExit
和yarn test a --bail
,但是什么也没有发生,但仍然得到提示。我如何运行所有的Jest测试而不会收到此提示,因为在Team City中运行时将没有任何交互?任何帮助将不胜感激。
答案 0 :(得分:2)
--ci
提供此选项时,Jest将假定它在CI环境中运行。遇到新快照时,这会更改行为。它不会通过自动存储新快照的常规行为,而是会使测试失败并要求Jest与--updateSnapshot一起运行。 link
此外,您可以将package.json
更改为:
"test": "CI=true react-scripts test --env=jsdom",
效果很好
答案 1 :(得分:1)
在TeamCity中,编辑您的配置设置,然后在侧面选择Parameters
。
单击Add a new Parameter
,然后在出现的对话框弹出窗口中,在Kind:
下选择Environment variable (env.)
。
将名称设置为env.CI
,并将值设置为true
。点击Save
。
下次运行构建时,构建应自动运行测试并继续。
有关奖励积分(如果您是管理员),请转到Administration
,然后在Projects
下编辑Parameters
,然后将env.CI
参数设置为true
,这样就不必为以后的项目设置此参数。
答案 2 :(得分:1)
yarn test --coverage
只运行一次(覆盖),成功则返回0,失败则返回1。