私のJSTestDriver構成ファイルでは、ユニットテストをのtest
代わりに下に置くことでコードカバレッジ計算からユニットテストを除外していますload
。
ただし、Underscore.jsのjQueryのような依存関係については、コードの前にロードする必要があるため、これを行うことはできません。
これを回避する方法はありますか?それとも、遅いコードカバレッジの実行と統計の乱雑さに対処するだけですか?
私のJSTestDriver構成ファイルでは、ユニットテストをのtest
代わりに下に置くことでコードカバレッジ計算からユニットテストを除外していますload
。
ただし、Underscore.jsのjQueryのような依存関係については、コードの前にロードする必要があるため、これを行うことはできません。
これを回避する方法はありますか?それとも、遅いコードカバレッジの実行と統計の乱雑さに対処するだけですか?
解決策1:
グレッグが言うように「args」パラメータを使用する方法がありますが、残念ながら、次のようにフルパスを指定する必要があります(Windowsを想定)。
plugin:
- name: "coverage"
jar: "lib/coverage-1.3.2.jar"
module: "com.google.jstestdriver.coverage.CoverageModule"
#Here put the files that have to be ignored by coverage. Non-existent files do not harm.
args: "
D:\\apache\\htdocs\\XTIME\\js\\lib\\ext-all.js,
D:\\apache\\htdocs\\XTIME\\js\\lib\\jquery-1.7.2.min.js,
"
Linuxファイルシステムの場合、ダブルスラッシュを使用する必要はありません。
解決策2:解決策2:
このスレッドには1.3.5用のパッチが適用されたjarもあり、正規表現に一致するファイルを除外できるため、次のようになります。
plugin:
- name: "coverage"
jar: "lib/coverage-1.3.5.serve-patch.jar" #this patched jar allows to use excludesRegex
module: "com.google.jstestdriver.coverage.CoverageModule"
args: "excludesRegex: /js/lib/.*\\.js$"
/js/lib/.*\.js$
正規表現は、「内部にあるすべての.jsファイルを除外する」という意味ですjs/lib
。(このパッチを使用すると、Windowsのバックスラッシュについて心配する必要はありません)
アプリケーションの特定のパスに依存しないため、移植性があるため、この方法の方がはるかに好きです。
パッチを適用したバージョンはここからダウンロードできます(スレッドでコメント11を探してください)。
お役に立てれば。
乾杯、ラパスから-ボリビア
構成の「args」でライブラリを指定することにより、コードカバレッジからライブラリを除外できます。ただし、パスは絶対でなければならないことに注意してください。執筆時点では、最新のjsTestDriverコードカバレッジプラグインは、パスが絶対である場合にのみライブラリを無視します。
ここを参照してください。