gpt4 book ai didi

testing - JS测试驱动中测试用例的异步执行

转载 作者:行者123 更新时间:2023-11-28 20:56:50 24 4
gpt4 key购买 nike

我们有 CI 构建服务器,其中不同的 JS 测试用例将在 JS 测试驱动程序服务器的同一实例上并行(异步)执行。测试用例相互独立,不应相互干扰。这可能使用 JS 测试驱动程序吗?

目前,我写了两个测试用例,只是为了检查这是否可行:

测试用例 1:

GreeterTest = TestCase("GreeterTest");

GreeterTest.prototype.testGreet = function() {
var greeter = new myapp.Greeter();
alert(“just hang in there”);
assertEquals("Hello World!", greeter.greet("World"));
};

测试用例 2:

GreeterTest = TestCase("GreeterTest");

GreeterTest.prototype.testGreet = function() {
var greeter = new myapp.Greeter();
assertEquals("Hello World!", greeter.greet("World"));
};

我在测试用例 1 中添加了警报语句以确保它卡在那里。

我已经使用以下命令启动了 JS 测试驱动程序服务器:

java --jar JsTestDriver-1.3.5.jar --port 9877 --browser <path to browser exe>

我开始执行两个测试用例,如下所示:

java -jar JsTestDriver-1.3.5.jar --tests all --server http://localhost:9877

测试用例 1 执行并在 alert 语句处挂起。测试用例 2 失败并出现异常 (BrowserPanicException)。 conf文件是正确的,因为第二个测试用例通过它自己执行。

在第一个测试用例仍在执行的同时,是否需要进行任何配置更改才能使第二个测试用例通过?

最佳答案

这个问题是由于“app”(jsTestDriver slave,运行测试)不能真正并行运行它们引起的。这是因为它是用单线程的 javascript 编写的。
该实现可能循环所有测试并逐个运行它们,因此,当警报弹出时,整个“应用程序”被阻止,甚至无法向 jsTestDriver 服务器报告,导致超时显示在 BrowserPanicException 中。
写作 Async Tests将无济于事,因为整个“应用程序”都卡住了。

关于testing - JS测试驱动中测试用例的异步执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13718567/

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