1

PhpStormでJasmineとJSTestDriverを使用しているのですが、複数のバージョンのjquery(つまり、1.7.x、1.8.x、1.9.0、2.0b)に対して単体テストを行うために1つのjsテストファイルを作成しようとしています。これを行うための最良の方法は何ですか?私はここSOでいくつかの質問を読みましたが、実際の答えはありません。

  • describeをループ内に配置し、各jQueryを手動でロード/削除しますか?
  • 私はjasmine-jqueryを使用しているので、フィクスチャをロードできますが、HTMLのみ(およびjson / css)のようであるため、jsファイルをロードする方法がわかりません。
  • 各スクリプトを段階的にロードし、jQuery.noConflictを呼び出すと、スクリプトを機能させることができますか?
  • jQueryのバージョンが変更されるたびにjQueryプラグインをリロードする必要がありますか?
4

1 に答える 1

0

何時間も試した後、私はなんとかこれを行うことができました。実際には非常に単純です。LAB.jsを使用して車輪の再発明を試みていました。これは非常に簡単に実行できました。これはあなたの内部にありますtest.js(結果ログも非常に優れています)。

function run() {
  describe("My code on jQuery " + ($().jquery), function () {
    // do your thing
  });
}

var
  $versions = ['1.7.1','1.7.2','1.8.0','1.8.1','1.8.2','1.8.3','1.9.0','2.0.0b1'];

for (var i = 0; i < $versions.length; i++) {
  $LAB
    .setOptions({AlwaysPreserveOrder:true, AllowDuplicates:true, CacheBust:true, BasePath:'/test/'})
    .script('tests/lib/jquery-' + ($versions[i]) + '.js')
    .script('tests/lib/jasmine-jquery.js')
    /* .script('any-other-lib.js') */
    .wait(run);
}

$ LABにロードされるものはすべて同期して順番にロードされるため、スクリプトのロード順序を常に確認できます。非常にシンプルで継続的インテグレーションにより、面倒なことなくIDEのバックグラウンドで実行できます(ランナーがクリーンアップせず、例外をスローする場合を除く$ is undefined

于 2013-01-27T21:46:55.410 に答える