为什么 Jest 在我使用 jest.setTimeout() 时不应用我的超时?
Why isn't Jest applying my timeout when I use jest.setTimeout()?
我知道我可以 use jest.setTimeout()
to set a custom timeout for a test。我在下面做这个。 MINUTE
的值为 60 * 1000
。
为什么 Jest 不应用我的超时?
thrown: "Exceeded timeout of 5000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."
13 |
14 | describe(`integration with API provider`, () => {
> 15 | it(`works`, async () => {
| ^
16 | // Just in case network is slow.
17 | jest.setTimeout(1 * MINUTE);
如您所见(尽管在 SO 的其他地方有声明),您 不能 通过从内部调用 jest.setTimeout
来更改单个测试的超时。请注意,您引用的文档状态(强调我的):
This only affects the test file from which this function is called.
它旨在用于测试 发现 时间,而不是 执行 时间,以设置给定上下文的超时。超时时间是在调用测试回调之前设置的,一旦测试真正开始就无法更改它。
对于单个测试,您可以通过将第三个参数传递给 the test
/it
function(或在其上定义的各种助手)来设置超时,例如:
it("has a description", () => {
// ...
}, 60_000);
我知道我可以 use jest.setTimeout()
to set a custom timeout for a test。我在下面做这个。 MINUTE
的值为 60 * 1000
。
为什么 Jest 不应用我的超时?
thrown: "Exceeded timeout of 5000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."
13 |
14 | describe(`integration with API provider`, () => {
> 15 | it(`works`, async () => {
| ^
16 | // Just in case network is slow.
17 | jest.setTimeout(1 * MINUTE);
如您所见(尽管在 SO 的其他地方有声明),您 不能 通过从内部调用 jest.setTimeout
来更改单个测试的超时。请注意,您引用的文档状态(强调我的):
This only affects the test file from which this function is called.
它旨在用于测试 发现 时间,而不是 执行 时间,以设置给定上下文的超时。超时时间是在调用测试回调之前设置的,一旦测试真正开始就无法更改它。
对于单个测试,您可以通过将第三个参数传递给 the test
/it
function(或在其上定义的各种助手)来设置超时,例如:
it("has a description", () => {
// ...
}, 60_000);