在运行jest测试时是否有显示所有测试描述的选项?

Sen*_*dai 35 reactjs jestjs enzyme create-react-app

我正在使用jest和酶与我的create-react-app项目.当我运行时npm test,我得到一个输出,显示传递的测试文件的名称,但我希望输出还包括测试的名称.

例:

Button.test.js

it ('renders button', () => {
    const button = shallow(<Button type="save"/>);
    expect(toJson(button)).toMatchSnapshot();
});
Run Code Online (Sandbox Code Playgroud)

现在当我运行npm test时,输出只是:

通过src/Button.test.js"

以及通过和失败的测试次数(测试成功时).我希望输出包含"渲染按钮"和任何其他测试描述(例如运行rspec测试时输出的外观).

sud*_*ang 63

来自Jest的命令行选项文档

--verbose

使用测试套件层次结构显示单个测试结果.

好跑

jest --verbose
Run Code Online (Sandbox Code Playgroud)

将打印在所有的名字describe,it,test块.
如果你正在运行测试yarn,你可以这样做

yarn test --verbose
Run Code Online (Sandbox Code Playgroud)

如果你正在运行测试npm,你可以这样做

npm test -- --verbose
Run Code Online (Sandbox Code Playgroud)

如果要进行此默认设置,请更改您的测试脚本 package.json

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

现在,这两个yarn testnpm test应该显示所有测试的名称.


dan*_*ias 18

请注意,而不是

jest --verbose
Run Code Online (Sandbox Code Playgroud)

您还可以设置verbosetruejest.config.js

// jest.config.js
module.exports = {
  ...
  verbose: true,
}
Run Code Online (Sandbox Code Playgroud)


Ste*_*han 9

--verbose标志听起来像它可能会执行您想要的操作。根据docs,它显示单个测试结果。

  • @Sendai 记得添加两个连字符以从“npm”参数转义为“jest”参数 - 就像这样:“npm test -- --verbose”。(否则,“--verbose”参数将转到“npm”,并且您会看到详细的“npm”输出,而不是详细的“jest”输出。) (8认同)
  • 我尝试使用它,但输出似乎没有任何不同 (2认同)

小智 7

我在使用create-react-app(使用笑话和酶)时遇到了相同的问题,但是在将testpackage.json中的现有脚本附加到之后,能够显示测试--verbose=true。现在看来"test": "react-scripts test --env=jsdom --verbose=true"