当我运行jest测试时,是否有选项可以显示所有测试描述?

142
我正在使用jest和enzyme与我的create-react-app项目。当我运行npm test时,我会得到一个输出,显示通过的测试文件的名称,但我希望输出还包括测试的名称。
示例:
Button.test.js
it ('renders button', () => {
    const button = shallow(<Button type="save"/>);
    expect(toJson(button)).toMatchSnapshot();
});

当前,当我运行npm test时,输出只有:

PASS src/Button.test.js"

以及通过和失败的测试数量(当测试成功时)。我希望输出包括“renders button”和任何其他测试说明(就像运行rspec测试时的输出方式)。

5个回答

246

来自于Jest命令行选项文档

--verbose

显示测试结果及其关系。

因此运行:

jest --verbose

将会打印出所有describeittest代码块中的名称。
如果你正在使用yarn运行测试,可以执行以下操作:

yarn test --verbose

如果您使用npm运行测试,则可以执行以下操作:

npm test -- --verbose

如果您想将其设置为默认值,请在 package.json 中更改测试脚本。

"test": "react-scripts test --env=jsdom --verbose",

现在,yarn testnpm test都应该显示所有测试名称。


42

请注意,除了使用

jest --verbose

你也可以在 jest.config.js 中将 verbose 设置为 true

// jest.config.js
module.exports = {
  ...
  verbose: true,
}

1
在使用Vue CLI 4并运行npm run test:unit时,将其添加到jest.config.js是唯一的方法。 - ioan

28

--verbose 标志看起来可能是你正在寻找的功能。根据文档,它会显示单独的测试结果。


4
我尝试使用这个,但输出似乎没有任何区别。 - Sendai
你的npm脚本和jest配置文件的内容是什么? - Steve Vaughan
12
@Sendai 记得在 npm 参数和 jest 参数之间加上两个连字符以进行转义,就像这样:npm test -- --verbose。(否则,--verbose 参数将被传递给 npm,你将看到冗长的 npm 输出而不是 jest 的输出。) - mindplay.dk
你也可以在你的 package.json 文件中的 test 键下添加这个值,例如 jest --verbose,然后在终端中运行 npm run test。这对我也很有效。 - utkarsh-k

10

我在使用create-react-app(同时使用jest和enzyme)时遇到了相同的问题,但是通过在package.json中将现有的test脚本附加上--verbose=true参数,成功使测试用例出现。所以现在它看起来像这样:"test": "react-scripts test --env=jsdom --verbose=true"


4
在package.json中进行以下配置:"test": "react-scripts test --env=jsdom --verbose",然后通过npm test运行你的测试。
注意:对于我来说,使用npm run test时,描述也没有反映出来。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接