私はNetbeansのJSテストドライバーを使用して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% と表示される必要があります。
ファイル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
3 つのテストがすべて実行されます。
ベストアンサー1
Firefox に関しては、コメントにもあるように、正しい答えではありません。部分的に動作させることはできました。問題は、NetBeans が失敗したテストを処理する方法と、jstestdriver.jar が起動される方法です。これで問題が解決するわけではないことはわかっていますが、正しい方向を指し示しています。
これを再現する手順。
- サービスからJSテストドライバーを起動する
- テストを実行します。
私はLinuxを使用しているので、現在のユーザーのNetbeans構成フォルダからjstestdriver.propertiesを見つけました。私の場合は次の場所にあります。
/home/{user}/.netbeans/8.2/config/Preferences/org/netbeans/modules/javascript/jstestdriver.properties
jstestdriver.jar --tests all --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
2回繰り返します。
- サービスから JS テスト ドライバーを再起動します。
- テストを実行します。
2 回目の再起動と実行後、上の図のようにすべてのテストが実行されるはずです。Netbeans の JS テスト ドライバーに引数 --tests all --reset を追加できれば、Chrome と同じように動作する問題が解決されるはずです。