如何在没有任何提示的情况下使用Yarn运行Jest测试?

may*_*ran 4 teamcity jenkins reactjs jestjs yarnpkg

我试图在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.
Run Code Online (Sandbox Code Playgroud)

我尝试运行yarn test a所有测试。但是一旦测试完成执行,我仍然会收到相同的提示。我试过了,yarn test a q但是不行。我也尝试过yarn test a --forceExityarn test a --bail但没有任何反应,我仍然得到提示。我如何运行所有的Jest测试而不会收到此提示,因为在Team City中运行时将没有任何交互?任何帮助将非常感激。

Sen*_*dor 5

--ci
Run Code Online (Sandbox Code Playgroud)

提供此选项后,Jest将假定它在CI环境中运行。遇到新快照时,这会更改行为。它不会通过自动存储新快照的常规行为,而是会使测试失败,并要求使用--updateSnapshot运行Jest。 链接

另外,您可以更改package.json为:

"test": "CI=true react-scripts test --env=jsdom",
Run Code Online (Sandbox Code Playgroud)

哪个很棒

  • 我试过“yarn test --ci”和“yarn test a --ci”。但我仍然收到相同的提示。有没有另一种方法可以在不对包 json 进行任何更改的情况下工作? (5认同)

som*_*oso 4

在 TeamCity 中,编辑您的配置设置,然后Parameters在侧面进行选择。

单击Add a new Parameter,然后在出现的弹出对话框中Kind:选择Environment variable (env.)

将名称设置为env.CI并将值设置为true。点击Save

下次运行构建时,构建应该自动运行测试并继续。

要获得奖励积分(如果您是管理员),请转到Administration编辑Projects<根项目>。单击Parameters侧面并将env.CI参数设置为true,这样您就不必为以后的项目进行设置。