MVC.NET 4.0アプリケーションのプロトタイプを作成し、Javascriptテスト構成を定義しています。VS2012でChutzpah拡張機能を使用してJasmineを動作させることができ、純粋なJavascriptテストを正常に実行できます。
ただし、テストフィクスチャ(DOM)コードをロードして、テストからアクセスすることができません。
これが私が実行しようとしているコードです:
test.js
/// various reference paths...
jasmine.getFixtures().fixturesPath = "./";
describe("jasmine tests:", function () {
it("Copies data correctly", function () {
loadFixtures('testfixture.html');
//setFixtures('<div id="wrapper"><div></div></div>');
var widget = $("#wrapper");
expect(widget).toExist();
});
});
フィクスチャは、テストファイルと同じフォルダにあります。操作はsetFixtures
機能しますが、ファイルからHTMLを読み込もうとすると、機能しません。最初は、リポジトリから最新バージョンのjasmine-jqueryを使用しようとしましたが、新しいバージョンにバグがあるように見えたため、1年以上前のダウンロードバージョン1.3.1にフォールバックしました。これが私が1.3.1で受け取るメッセージです:
テスト'jasminetests :: Copys datacorrectly'が失敗しましたエラー:フィクスチャをロードできませんでした:./testfixture.html(ステータス:エラー、メッセージ:未定義)file:/// C:/ Users / db66162 / SvnProjects / MvcPrototype / MvcPrototype.Tests / Scripts / jasmine / jasmine-jquery-1.3.1.js(103行目)
ソースを調べると、AJAX呼び出しが行われていますが、ブラウザーで実行されていません。代わりに、ヘッドレスブラウザ(PhantomJS)を実行するChutzpahを使用しています。これをブラウザでテストハーネスを使用して実行すると、機能します。
この問題の解決策を持っている人はいますか?Visual StudioとTeamCityの両方でこれらのテストを自動的に実行できるようにする必要があります(これがChutzpahを使用している理由です)。Chutzpahの代わりに別のテストランナーを使用することを含むソリューションを受け入れています。また、この取り組みでqUnitテストフレームワークを評価するので、qUnitの構成でこの問題が発生しないことがわかっている場合は、それが役立つと思います。