【发布时间】:2022-01-26 19:49:26
【问题描述】:
在我们的 CI (github) 工作流中,我有一个类似这样的 Jest 输出。
PASS a/b/c.spec.tsx (75.856 s)
Test
✓ should a (45 ms)
✓ should b (53 ms)
✓ should c (19 ms)
✓ should d (13 ms)
✓ should e (12 ms)
✓ should f (14 ms)
✓ should g (18 ms)
在我的本地设置中,需要 7 秒。我删除多少个单独的测试似乎也无关紧要,时间大致相同(这是有道理的,每个测试只有几毫秒)。我的测试看起来像这样
import React from 'react';
import { render, screen } from '@testing-library/react';
import Foo from './foo';
describe('Test', () => {
it('should a', () => {
const { baseElement } = render(
<Foo
text="SomeText"
number={0}
moretext="More Text"
/>
);
expect(baseElement).toBeTruthy();
});
it('should b', () => {
const { baseElement } = render(
<Foo
text="SomeText"
number={0}
moretext="More Text"
/>
);
expect(baseElement).toBeTruthy();
expect(baseElement.querySelector('h2')).toHaveTextContent(
'SomeText'
);
});
... 等等。一切都是通过查询选择器完成的。但同样,每次测试都很快。如果每个测试只有几毫秒,为什么在 GitHub CI 上运行需要 75 秒(始终如一)?在我的本地设置中,即使 7 秒也是痛苦的。
【问题讨论】:
-
您好,能否提供您的工作流程 yaml?我怀疑这需要很长时间,因为它正在下载你所有的节点模块
-
我认为你是对的。我删除了测试,基本上另一个测试报告“75 秒”,所以是的。
标签: reactjs github jestjs cicd