2

私のJSTestDriver構成ファイルでは、ユニットテストをのtest代わりに下に置くことでコードカバレッジ計算からユニットテストを除外していますload

ただし、Underscore.jsのjQueryのような依存関係については、コードの前にロードする必要があるため、これを行うことはできません。

これを回避する方法はありますか?それとも、遅いコードカバレッジの実行と統計の乱雑さに対処するだけですか?

4

2 に答える 2

3

解決策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を探してください)。

お役に立てれば。
乾杯、ラパスから-ボリビア

于 2012-11-23T19:06:24.913 に答える
1

構成の「args」でライブラリを指定することにより、コードカバレッジからライブラリを除外できます。ただし、パスは絶対でなければならないことに注意してください。執筆時点では、最新のjsTestDriverコードカバレッジプラグインは、パスが絶対である場合にのみライブラリを無視します。

ここを参照してください。

于 2012-08-26T22:45:27.670 に答える