gpt4 book ai didi

javascript - Angular Protractor 在它上面循环 ('some test' ) 测试

转载 作者:行者123 更新时间:2023-11-29 16:01:40 25 4
gpt4 key购买 nike

我绞尽脑汁在网上搜索了 Protractor 端到端同步测试代码的方法,无果!我希望实现的是无限期地重复相同的 Protractor 测试,直到我关闭浏览器或结束测试或通过命令行上的 ^(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 循环不起作用并且一直循环。我意识到我无法使用任何 Protractor/网络驱动程序等待命令甚至 rjx 间隔 API 来实现此目的,因为这纯粹是一个 JavaScript 问题。由于 JavaScript 是单线程的。请问我怎么可能做到这一点?互联网上有很多关于此的问题,但有些没有答案,有些最多相似但不完全相同!非常感谢您的帮助。

最佳答案

我找到了一个 interesting article

What you need to do is wrap your it block inside a function, which you can then call from inside a loop

例子:

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]);
}
});

希望对你有帮助

关于javascript - Angular Protractor 在它上面循环 ('some test' ) 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52247073/

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