如何在 Jasmine 中强制执行默认超时间隔?
How to enforce the default timeout interval in Jasmine?
我正在尝试使用 protactor 和 jasmine 为我的自动化脚本设置超时。我已将默认的 jasmine 超时设置为 5 秒。
茉莉花节点选项:{
默认超时间隔:5000,
}
当我尝试测试 5 秒超时时,脚本总共运行了 20 秒,即使在规范超时之后也是如此。
所以基本上它会一直执行直到超时 4 次。
这是我的终端 -
Jasmine 规范超时。重置 WebDriver 控制流。
Jasmine 规范超时。重置 WebDriver 控制流。
Jasmine 规范超时。重置 WebDriver 控制流。
Jasmine 规范超时。重置 WebDriver 控制流。
失败:
1) Timeout issue debugger 设置超时,看是否超过
留言:
错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。
堆:
错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。
在超时 (timers.js:427:11)
在 tryOnTimeout (timers.js:289:5)
在 listOnTimeout (timers.js:252:5)
在 Timer.processTimers (timers.js:212:10)
留言:
错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。
堆:
错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。
在超时 (timers.js:427:11)
在 tryOnTimeout (timers.js:289:5)
在 listOnTimeout (timers.js:252:5)
在 Timer.processTimers (timers.js:212:10)
留言:
错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。
堆:
错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。
在超时 (timers.js:427:11)
在 tryOnTimeout (timers.js:289:5)
在 listOnTimeout (timers.js:252:5)
在 Timer.processTimers (timers.js:212:10)
留言:
错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。
堆:
错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。
在超时 (timers.js:427:11)
在 tryOnTimeout (timers.js:289:5)
在 listOnTimeout (timers.js:252:5)
在 Timer.processTimers (timers.js:212:10)
这就是我测试它的方式 -
describe('Timeout issue debugger', () => {
afterEach(done => {
helper.reportTestRails().then(function() {
done();
});
});
afterEach(() => {
helper.updateResults();
});
it('Set timeout and see if it exceeds and works properly', async () => {
browser.sleep(30000);
});
)};
如果有任何建议或解决方案,我将不胜感激。
我建议不要将量角器控制流和 async/await 混合在一起。这会导致像您这样的可怕错误。此外,控制流已弃用并已从 v6.x
中删除
我建议:
1) 在你的 Protactor 配置文件中设置 SELENIUM_PROMISE_MANAGER: false
2) 到处使用 await:在所有异步命令前加上 await:
describe('Timeout issue debugger', function () {
afterEach(async function () {
await helper.reportTestRails();
await helper.updateResults();
});
it('Set timeout and see if it exceeds and works properly', async function () {
await browser.sleep(10000);
});
)};
我正在尝试使用 protactor 和 jasmine 为我的自动化脚本设置超时。我已将默认的 jasmine 超时设置为 5 秒。 茉莉花节点选项:{ 默认超时间隔:5000, } 当我尝试测试 5 秒超时时,脚本总共运行了 20 秒,即使在规范超时之后也是如此。 所以基本上它会一直执行直到超时 4 次。
这是我的终端 -
Jasmine 规范超时。重置 WebDriver 控制流。
Jasmine 规范超时。重置 WebDriver 控制流。
Jasmine 规范超时。重置 WebDriver 控制流。
Jasmine 规范超时。重置 WebDriver 控制流。
失败: 1) Timeout issue debugger 设置超时,看是否超过
留言: 错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。 堆: 错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。 在超时 (timers.js:427:11) 在 tryOnTimeout (timers.js:289:5) 在 listOnTimeout (timers.js:252:5) 在 Timer.processTimers (timers.js:212:10)
留言: 错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。 堆: 错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。 在超时 (timers.js:427:11) 在 tryOnTimeout (timers.js:289:5) 在 listOnTimeout (timers.js:252:5) 在 Timer.processTimers (timers.js:212:10)
留言: 错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。 堆: 错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。 在超时 (timers.js:427:11) 在 tryOnTimeout (timers.js:289:5) 在 listOnTimeout (timers.js:252:5) 在 Timer.processTimers (timers.js:212:10)
留言: 错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。 堆: 错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。 在超时 (timers.js:427:11) 在 tryOnTimeout (timers.js:289:5) 在 listOnTimeout (timers.js:252:5) 在 Timer.processTimers (timers.js:212:10)
这就是我测试它的方式 -
describe('Timeout issue debugger', () => {
afterEach(done => {
helper.reportTestRails().then(function() {
done();
});
});
afterEach(() => {
helper.updateResults();
});
it('Set timeout and see if it exceeds and works properly', async () => {
browser.sleep(30000);
});
)};
如果有任何建议或解决方案,我将不胜感激。
我建议不要将量角器控制流和 async/await 混合在一起。这会导致像您这样的可怕错误。此外,控制流已弃用并已从 v6.x
中删除我建议:
1) 在你的 Protactor 配置文件中设置 SELENIUM_PROMISE_MANAGER: false
2) 到处使用 await:在所有异步命令前加上 await:
describe('Timeout issue debugger', function () {
afterEach(async function () {
await helper.reportTestRails();
await helper.updateResults();
});
it('Set timeout and see if it exceeds and works properly', async function () {
await browser.sleep(10000);
});
)};