Javascript 如何在Jasmine中强制执行默认超时间隔?

Javascript 如何在Jasmine中强制执行默认超时间隔?,javascript,unit-testing,jasmine,protractor,timeout,Javascript,Unit Testing,Jasmine,Protractor,Timeout,我正在尝试使用Proactor和jasmine为我的自动化脚本设置超时。我已将默认jasmine超时设置为5秒。 茉莉花:{ defaultTimeoutInterval:5000, } 当我尝试测试5秒超时时,脚本总共运行20秒,即使在规范超时之后也是如此。 所以基本上它一直执行,直到超时4次 这是我的终点站- 茉莉花规格超时。重置WebDriver控制流 茉莉花规格超时。重置WebDriver控制流 茉莉花规格超时。重置WebDriver控制流 茉莉花规格超时。重置WebDriver控制流

我正在尝试使用Proactor和jasmine为我的自动化脚本设置超时。我已将默认jasmine超时设置为5秒。 茉莉花:{ defaultTimeoutInterval:5000, } 当我尝试测试5秒超时时,脚本总共运行20秒,即使在规范超时之后也是如此。 所以基本上它一直执行,直到超时4次

这是我的终点站-

茉莉花规格超时。重置WebDriver控制流

茉莉花规格超时。重置WebDriver控制流

茉莉花规格超时。重置WebDriver控制流

茉莉花规格超时。重置WebDriver控制流

失败: 1) 超时问题调试器设置超时并查看是否超过

信息: 错误:超时-在jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调。 堆栈: 错误:超时-在jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调。 在ontimeout(timers.js:427:11) 在tryOnTimeout(timers.js:289:5) 在listOnTimeout(timers.js:252:5) at Timer.processTimers(timers.js:212:10)

信息: 错误:超时-在jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调。 堆栈: 错误:超时-在jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调。 在ontimeout(timers.js:427:11) 在tryOnTimeout(timers.js:289:5) 在listOnTimeout(timers.js:252:5) at Timer.processTimers(timers.js:212:10)

信息: 错误:超时-在jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调。 堆栈: 错误:超时-在jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调。 在ontimeout(timers.js:427:11) 在tryOnTimeout(timers.js:289:5) 在listOnTimeout(timers.js:252:5) at Timer.processTimers(timers.js:212:10)

信息: 错误:超时-在jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调。 堆栈: 错误:超时-在jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调。 在ontimeout(timers.js:427:11) 在tryOnTimeout(timers.js:289:5) 在listOnTimeout(timers.js:252:5) at 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);
  });
)};

我将感谢任何建议或解决方案。

我建议不要将量角器控制流和异步/等待混合在一起。这是像你这样可怕的虫子。此外,控制流已弃用,并已从v6.x中删除

我建议: 1) 在proactor配置文件中设置
SELENIUM\u PROMISE\u MANAGER:false
2) 使用await-everywhere:在所有异步命令前面加上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);
  });
)};

我建议不要将量角器控制流和异步/等待混合在一起。这是像你这样可怕的虫子。此外,控制流已弃用,并已从v6.x中删除

我建议: 1) 在proactor配置文件中设置
SELENIUM\u PROMISE\u MANAGER:false
2) 使用await-everywhere:在所有异步命令前面加上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);
  });
)};

您可以在脚本中添加超时。description('量角器演示应用',function(){it('应该有标题',function(){browser.driver.manage().timeout(250000);您可以在脚本中添加超时。description('量角器演示应用',function(){it('应该有标题',function(){browser.driver.manage().timeout(250000)成功了!我设置了
SELENIUM\u-PROMISE\u-MANAGER:false,效果很好。谢谢Xotabu4。成功了!我设置了
SELENIUM\u-PROMISE\u-MANAGER:false,效果很好。谢谢Xotabu4。