gpt4 book ai didi

jasmine - 在运行另一个之前等待特定的规范文件执行 - Jasmine/Protractor

转载 作者:行者123 更新时间:2023-12-01 06:06:46 28 4
gpt4 key购买 nike

工具:Protractor 3.3.0、Jasmine 2.4.1、Selenium Standalone Server。

我有一个测试套件,里面有大量的 spec.js 文件,每个文件都包含我的应用程序的独特测试。

我正在使用 最大实例数 分片测试文件 浏览器功能可以启动 3 个浏览器并运行每个规范文件以减少整个套件的运行时间(3 个浏览器的运行时间约为 20 分钟......所以没有它可能需要一个多小时)。

我的问题是如何告诉 Protractor 在执行之前让规范文件等待另一个规范文件的完成。例如:

假设我有一个 第 1 页 测试 我有规范文件 a1.spec , a2.spec , 和 a3.spec 然后我有一些类似结构的其他测试或你有什么。

当我用 3 个浏览器实例启动 Protractor 时,正如预期的那样, a1.spec , a2.spec , 和 a3.spec 所有这些都使用自己的个人浏览器实例启动,因为它的比例为 1:1。但是如果 a3.spec 不能运行,除非 a2.spec 完成?我如何使这种等待发生,或者只是不使某些测试相互依赖的最佳实践?

最佳答案

您可以使用 done回调要么在beforeEachit任何需要时间异步完成的测试。在您等待的测试完成之前,不会运行任何后续测试。

在每个示例之前

beforeEach(function(done) {
setTimeout(function() {
value = 0;
done();
}, 1);
});

例子
it("should support async execution of test preparation and expectations", function(done) {
value++;
expect(value).toBeGreaterThan(0);
done();
});

这将根据您的需要排队,但测试将连续运行。为了加快速度,你可以使用 Promises 和 when/guard但这可能会使事情变得过于复杂。

关于jasmine - 在运行另一个之前等待特定的规范文件执行 - Jasmine/Protractor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37818204/

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