Я хочу исключить cobertura из инструментального кода, если test=true

Я хочу исключить cobertura из инструментального кода, если test=true.

Прямо сейчас у меня есть все мои необходимые статусы вверху:

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?


person Mick Knutson    schedule 16.10.2012    source источник


Ответы (1)


если вам не требуется "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

чт

person tofferoma    schedule 24.10.2012