1

test=true の場合、cobertura を計測コードから除外したいと考えています。

現在、必要なすべてのステートメントが上部にあります。

require 'buildr/java/cobertura'
require 'buildr/scala'

次に、ビルドが実行されるたびに、次のようになります。

cobertura データ ファイル C:/usr/git_workspaces/reports/cobertura.ser を使用してクラスを計測する

これは、私の製品コードに cobertura インストルメンテーションが含まれていることを意味します。

これは私のビルドの次のセクションです

compile.with  CORE, SLF4J, LOG4J, WS_CLIENTS, JODA_TIME,
            [omitted for brevity]

compile.options.other = %w(-encoding UTF-8)

cobertura.exclude '[omitted for brevity]'

resources.filter.using *RESOURCES_FILTER

test.using :junit
# need this because of forking.  It does not appear to use the environmental variables defined above.
test.using :java_args => ["-XX:MaxPermSize=128M"]
test.with JUNIT, SCALATEST, MOCKITO, POWERMOCK, HAMCREST, SPRING.test

# Pakcage is below here but the code has already been instrumented...

compile.with はコンパイルが実際に行われる場所ですか? if テストを作成して cobertura を追加できますか?

4

1 に答える 1

2

「buildr/java/cobertura」を必要としない場合、計測は行われません。

このように「解決」しました(少なくともコマンドラインパラメーターには「cobertura」を含める必要があります。そうしないと、クラスはインストルメント化されません)

ARGV.each do |a| 
  if (a.include?("cobertura")) 
    require "buildr/java/cobertura"
    break
  end
end

あなたはこれを行うことができます

require_cb = ture
ARGV.each do |a|   
    if (a.include?("test=yes"))
    require_cb = false      
    break
  end
end
require "buildr/java/cobertura" if require_cb

h番目

于 2012-10-24T14:54:52.010 に答える