【问题标题】:angular protractor loop over it('some test') tests角度量角器循环('一些测试')测试
【发布时间】:2018-09-10 03:44:20
【问题描述】:

我绞尽脑汁并在互联网上搜索了一种使量角器 e2e 测试代码同步的方法,但无济于事!我希望实现的是无限期地重复相同的量角器测试,直到我关闭浏览器或结束测试或通过命令行上的 ^(control)c 结束它。这是我正在尝试做的一个示例:

import { AppPage } from './app.po';
import { browser } from 'protractor';
import { interval } from 'rxjs';
import { takeWhile, switchMap } from 'rxjs/operators';
describe('workspace-project App', () => {
    let page: AppPage;
    let testComplete = false;

    beforeEach(() => {
       page = new AppPage();
    });

    while (true) { // Doesn't work 
        it('should display welcome message', () => {
            page.navigateTo();
            expect(page.getParagraphText()).toEqual('Welcome to testAngular6!');
            console.log('Executing tests');
            browser.wait(function () { return true; }, 5000);
        });
    }

});

但是围绕“it”测试的 while 循环不起作用并一直循环。我意识到我不能使用任何量角器/网络驱动程序等待命令甚至 rjx 间隔 API 来实现这一点,因为这纯粹是一个 JavaScript 问题。由于 JavaScript 是单线程的。请问我怎么可能做到这一点?互联网上有很多关于此的问题,但有些问题没有答案,有些问题充其量是相似的,但并不完全相同!非常感谢您的帮助。

【问题讨论】:

  • Jasmine 设计不支持此功能。 Jasmine 将在执行其中的任何 it 块之前加载每个 spec.js。 Jasmine 需要知道加载后 spec.js 中有多少 it 块。但是你的while 循环会生成无穷大的it 块。

标签: javascript angular protractor


【解决方案1】:

我找到了interesting article

您需要做的是将您的 it 块包装在一个函数中,然后您可以从循环内部调用它

例子:

describe('this is my looping test!', function() {
  var input = [1,2,3];
  var output = [10, 20, 30];

  function test_my_times_ten(input, output) {
    it('should multiply ' + input + ' by 10 to give ' + output, function() {
      expect(input * 10).toEqual(output)
    });
  }

  for(var x = 0; x < input.size; x++) {
    test_my_times_ten(input[x], output[x]);
  }
});

希望对你有帮助

【讨论】:

  • 嗨,奥列格。只是想说谢谢你的回答。我投了赞成票,是的,它解决了我的问题。非常感谢。
  • 您好 FlexibleMan,感谢您的反馈,但您似乎没有投票。
  • 对不起那个奥列格。我按了几次向上投票箭头,但它会短暂闪烁并弹出一个提示,表示声望低于 15 的人的投票已记录但未显示。不知道为什么!!
  • 你应该能够接受正确答案stackoverflow.com/help/someone-answers
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 1970-01-01
  • 2016-01-16
  • 2013-12-06
  • 2020-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多