多个测试文件

时间:2018-08-11 03:46:20

标签: javascript unit-testing testing jestjs

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');
    });

从任一文件的名称中删除“测试”,使得一次仅运行两个测试中的一个,将导致成功输出期望的文件名称详细信息。 TLDR:这两个文件都可以单独工作。

2 个答案:

答案 0 :(得分:3)

TLDR

--verbose开玩笑。

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

TMI

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

显然,jestjest --verbose相同,如果仅存在一个测试文件,则不存在两个或多个。对于两个或多个,必须显式包括--verbose

答案 1 :(得分:0)

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

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

npm run test -- --verbose