如何在玩笑中限制测试执行的并发性?假设我只想同时并行运行 4 个测试用例。
我目前的问题是我有很多使用真实数据库连接的集成测试。Jest 并行执行太多测试用例,因此经常连接超时或我的测试数据库实例的性能显着下降,因为同时有太多查询。
我所有的集成测试套件都具有以下结构:
describe('<functionality x>', () => {
test('case 1', async () => {...})
test('case 2', async () => {...})
test('case 3', async () => {...})
})
describe('<functionality y>', () => {
test('case 1', async () => {...})
test('case 2', async () => {...})
test('case 3', async () => {...})
})
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用 运行 jest --maxWorkers=1,但我想这与 相同--runInBand,它有效,但确实减慢了整体执行时间。
Pet*_*r W 14
相反--maxWorkers=1,您可以提供更大的值,例如--maxWorkers=2or --maxWorkers=50%。
但是,如果您尝试限制并行运行的测试数量,则似乎您想要使用:
jest --maxConcurrency=N
Run Code Online (Sandbox Code Playgroud)
Jest 的文档说:
防止 Jest 同时执行超过指定数量的测试。仅影响使用 test.concurrent 的测试。
因此,请注意您必须通过添加以下内容来修改测试.concurrent:
describe('<functionality x>', () => {
test.concurrent('case 1', async () => {...})
test.concurrent('case 2', async () => {...})
test.concurrent('case 3', async () => {...})
})
describe('<functionality y>', () => {
test.concurrent('case 1', async () => {...})
test.concurrent('case 2', async () => {...})
test.concurrent('case 3', async () => {...})
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |