NetBeans 上的 JsTestDriver 在断言失败后停止测试

2022-08-30 01:54:56

我已经按照这个链接在Netbeans上设置了JS Test Driver的JavaScript单元测试。但是,与该教程中的结果不同,在断言失败后不会再执行任何测试。如何更改此行为?

例如,给定此测试文件:

文件:test.js

AssertionsTestCase = TestCase("AssertionsTestCase");

AssertionsTestCase.prototype.testAlwaysPass = function(){
  assertEquals(1, 1);
  assertEquals(2, 2);
};
AssertionsTestCase.prototype.testAlwaysFail1 = function(){
  assertEquals(1, 2);
};
AssertionsTestCase.prototype.testAlwaysFail2 = function(){
  assertEquals(3, 4);
};

进度条显示50%,(2个测试),它应该说33%。

enter image description here

文件:jsTestDriver.conf

server: http://localhost:42442
load:
  - test/lib/jasmine/jasmine.js
  - test/lib/jasmine-jstd-adapter/JasmineAdapter.js
  - test/unit/*.js

我可以让所有测试都通过命令行运行。(在Windows PowerShell上)。按如下方式运行,测试在失败后不会停止运行:


java -jar $env:JSTD\JsTestDriver-1.3.5.jar --tests all --config jsTestDriver.conf

文件:jsTestDriver.conf

server: http://localhost:4244
load:
  - test/lib/jasmine/jasmine.js
  - test/lib/jasmine-jstd-adapter/JasmineAdapter.js
  - test/unit/*.js

将运行所有三个测试。


答案 1

似乎在Chrome中工作正常。enter image description here

关于火狐,正如评论所说,这不是正确的答案。我已经设法让它部分工作。问题在于 netbeans 如何处理失败的测试,以及如何启动 jstestdriver.jar。我知道这并不能解决问题,但它指向了正确的方向。

enter image description here

重现此内容的步骤。

  1. 从服务启动 JS 测试驱动程序
  2. 运行测试。
  3. 因为我使用的是linux。我已经从当前用户的Netbeans配置文件夹中找到了jstestdriver.properties。在我的情况下,它位于

    /home/{user}/.netbeans/8.2/config/Preferences/org/netbeans/modules/javascript/jstestdriver.properties

    通过向 jstestdriver 添加参数来编辑位置属性.jar --测试所有 --reset。编辑后,我的属性如下所示。

    location=/home/user/Downloads/jstestdriver-1.3.5.jar --tests all --reset server.url=http://localhost:42442 strict.mode=false use.browser.ANDROID_DEVICE_CHROME=false use.browser.ANDROID_DEVICE_DEFAULT=false use.browser.ANDROID_EMULATOR_DEFAULT=false use.browser.Chrome=false use.browser.Chrome.INTEGRATED=false use.browser.SL__Browsers_FirefoxBrowser=true use.browser.SL__Browsers_MozillaBrowser=false

  4. 重复2次。

    • 从服务重新启动 JS 测试驱动程序。
    • 运行测试。

第二次重新启动并运行后,它应该运行所有测试,如上图所示。如果您可以在 Netbeans 中添加参数 --测试所有 --reset for JS Test Driver,它应该可以像在 Chrome 中一样解决问题。


答案 2