gpt4 book ai didi

jestjs - Jest 限制集成测试的并发性

转载 作者:行者123 更新时间:2023-12-04 11:54:30 29 4
gpt4 key购买 nike

如何在 Jest 中限制测试执行的并发性?假设我只想同时并行运行 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 () => {...})
})

我已经试过用 --maxWorkers=1 运行 jest ,但我想这与 --runInBand 相同,这有效,但确实减慢了整体执行时间。

最佳答案

而不是 --maxWorkers=1 ,您可以提供更大的值,例如 --maxWorkers=2--maxWorkers=50% .
但是,如果您试图限制并行运行的测试数量,您似乎想使用:

jest --maxConcurrency=N
Jest的 documentation说:

Prevents Jest from executing more than the specified amount of tests at the same time. Only affects tests that use 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 () => {...})
})

关于jestjs - Jest 限制集成测试的并发性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56029543/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com