【问题标题】:Jest not outputting describe names nor test names when more than one test file当多个测试文件时,开玩笑不输出描述名称或测试名称
【发布时间】:2019-01-18 15:31:27
【问题描述】:

TLDR

当运行Jest (23.5.0) 只有一个文件时,它会输出“描述名称”和“测试名称”。我希望 Jest 在运行多个测试文件时输出“描述名称”和“测试名称”,但它似乎会自动抑制。

TMI

例子:

 PASS  src/components/UsersTable.test.jsx
  UsersTable
    ✓ is a table (4ms)
    ✓ has columns 'first', 'last', 'email' (1ms)

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        1.768s, estimated 2s
Ran all test suites.

当两个一起运行时,它会抑制。示例:

 PASS  src/components/UsersTableRow.test.jsx
 PASS  src/components/UsersTable.test.jsx

Test Suites: 2 passed, 2 total
Tests:       4 passed, 4 total
Snapshots:   0 total
Time:        2.254s
Ran all test suites.

部分代码示例:

describe('UsersTable', () => {
    const component = renderer.create(
        <UsersTable />
    );
    const usersTable = component.toJSON();

    test('is a table', () => {
        expect(usersTable.type).toBe('table');
    });

从任一文件的名称中删除“test”,以便一次仅运行两个测试中的一个,从而成功输出任一文件的名称详细信息。 TLDR:两个文件单独工作。

【问题讨论】:

    标签: javascript unit-testing testing jestjs


    【解决方案1】:

    TLDR

    --verbose开玩笑。

    将 package.json 测试脚本更改为 jest --verbose

    TMI

    我尝试了npm run test --verbose,它影响了输出,但没有包含我希望的信息。我错误地认为--verbose 不是解决方法。但是在npm run test --verbose 中,我错误地将详细标志应用于npm 进程,而不是开玩笑。

    如果只有一个测试文件存在,jest 显然与jest --verbose 相同,但不存在两个或更多。对于两个或更多,必须明确包含--verbose

    【讨论】:

    • 也可以作为 "npm run test -- --verbose" 运行,以便将参数传递给 jest。
    【解决方案2】:

    您可以使用 --verbose 标志运行多个测试(正如 Geoffrey Hale 在他的回答中提到的那样)。

    您可以使用-- 告诉命令行将标志传递给 jest(而不是 npm):

    npm run test -- --verbose
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-22
      • 2021-03-14
      • 2018-06-18
      • 2022-08-10
      • 2016-12-25
      • 2021-04-18
      • 2016-09-12
      • 1970-01-01
      相关资源
      最近更新 更多