2011-09-19 5 views
5

私はJavascriptコードの単体テストを実行しているJasmine単体テストをたくさん持っています。 彼らはJasmine-jqueryプラグインを使用してDOM操作を行っています。 は、彼らは私がJasmineAdapter で、JsTestDriverを使用して、これらのユニットテストを自動化しようとしましたが、すべてのテストがDOM-jqueryの操作を含む渡していないHTMLJavascript JsTestDriver Jasmine&Jasmine-jquery

の備品をロードするために、loadFixtureを使うのか? 何か問題がありますか? JasTestDriverでJasmine-jqueryを使用する方法はありますか?

答えて

9

私はこの問題の解決策を見つけたので、私は自分自身に答えます。 問題はJasmine-Jqueryがhtmlフィクスチャをロードするためにajaxを使用しており、htmlフィクスチャがJasmineテストを実行しているHTMLコンテナを基準にどこかにあると仮定して相対パスを使用しています。 しかし、JsTestDriverが独自の "space"内にテストをロードしているので、Jasmine-Jqueryがそれらのhtmlフィクスチャを検索してJsTestDriverをロードする場所を変更する必要があります。

次のように解決策は以下のとおりです。

JsTestDriverは、静的なHTMLファイルをロードする機能を持っています。設定ファイルに には、次の行を追加します。

サーブ: - を例えば: サーブ: を - 備品* .htmlの

今、あなたは、次の形式 HTTPでそれらにアクセスすることができます:localhostを:9876 /テスト/ fixtures/... Jasmine-jqueryは、この場所から灯具をロードすることができます。

とあなたは、あなたのテストをもう一度行います。

+0

私はlibに/ジャスミンコア/ jasmine.jsを持って、私のjarファイルが内部私のフォルダ「ジャスミン」で実行しています。私もscripts/test.jsとfixtures/text.htmlを持っています。私はサーブしました: - fixtures/*。htmlしかし、私はまだfixtures '/ fixtures'や他のバリエーションでパニックエラーを受けています。ジャスミンfixturePathを設定するとき。何か案は? –

+0

ああ、私はモニカの答えを読んで、私は/テスト/前に置く必要があることを見た。それがそれを解決しました。私のサーバーはlocalhost上にないので、localhostの例は私を少し捨てていました。 –

+0

これは、JsTestDriver-1.3.4-a.jarでは機能しないようですが、WindowsではJsTestDriver-1.3.4.b.jarに対して実行されます。 – gotofritz

3

少し明確にするためにprevious posting

あなたが持っているあなたのjsTestDriver設定ファイルにした場合:

サーブ:

spec/fixtures/*_fixture.html 

を次に、あなたは基本的に何でもパス/test/ +である

jasmine.getFixtures().fixturesPath = '/test/spec/fixtures'; 

を使用してテストスイートをオーバーライドする必要がありますあなたのjsTestDriver設定ファイルのserveセクションで宣言します。

0

私はオープンソースのツールキットをリリースしました。このツールキットは、他の人に役立つことができます。これは、あなたの作業の中で必要なバックボーンアプリをそのままの状態で提供する、多くのオープンソースツールの構成です。

requirejsのテキストプラグインとrequirejsのハンドルバープラグインを使用すると、より洗練された解決策が得られます。

dev Webサーバー、jasmineシングルブラウザーテストランナー、jasmine js-test-driverマルチブラウザーテストランナー、JavaScriptとCSSの連結/縮小機能があります。また、プロダクションのデバッグ用に未使用のバージョンのアプリケーションを出力し、ハンドルバーテンプレートをプリコンパイルし、国際化をサポートします。 セットアップは不要です。それだけで動作します。

http://github.com/davidjnelson/agilejs

関連する問題