5

私はJSプロジェクトを持っています:ソースコード+テスト。今のところ、テストは元のソースで実行されており、すべてうまく機能しています。

しかし、その後、ソースが縮小され、縮小されたバージョンでもすべてのテストを実行したいと考えています。縮小のため、すべての関数名が変更されていることに注意してください。解決可能なタスクですか?理想的には、テスト/ソースにあまり変更を加えないことです。

私の今の構成は、TeamCity、karma.js + mocha、クロージャ コンパイラ (高度な最適化) です。

4

2 に答える 2

1

私たちのアプローチは次のとおりです。クロージャに付属のテスト スイートを使用し、通常どおりにテストを記述してから、goog.exportSymbol を使用して、「リフレクション」の例による高度なコンパイルで動作するテストを取得します。

product.path.SomethingRegressionTest.prototype.placeInvalidSession = function() {
...
}
goog.exportSymbol('test_placeInvalidSession', function() {
  core.inject(product.path.SomethingRegressionTest).placeInvalidSession();
});

ここでは注入を使用し、ティアダウンでは注入されたすべてのインスタンスを破棄しますが、使用できるアプローチがいくつかあります。

于 2013-07-09T10:02:25.993 に答える
0

jQuery の場合、modules オプションを使用して、ソースと同時にテストをコンパイルします。うまくいきそうです。テストが高度な最適化と互換性のある方法で記述されていることを確認してください。

テスト用の jQuery コンパイル オプションは次のとおりです: https://github.com/ChadKillingsworth/jquery/blob/closure-compiler-1.9/build/closure-compiler/closure-compiler.flags

于 2013-07-10T15:44:27.517 に答える