cobertura изменяет ваши файлы классов, чтобы он мог вычислять покрытие.Обычно я «копирую» копию файлов jar, которые я использую для выполнения тестов, и использую копию, которая не была инструментом, в качестве моего артефакта сборки.
Вот файл сборки, который я использовал при первой настройкеcobertura via ant:
Целевой инструмент cobertura обрабатывает мой код и записывает инструментированные классы в отдельный каталог, как вы сказали.
Цель junit компилирует тест, затем тестирует инструменты, затем запускает тесты и создает отчет.Все эти шаги выполняются путем объявления зависимых целей юнитом.
<path id="cobertura.classpath">
<fileset dir="${cobertura.dir}">
<include name="cobertura.jar" />
<include name="lib/**/*.jar" />
</fileset>
</path>
<taskdef classpathref="cobertura.classpath" resource="tasks.properties" />
<!-- Delete an existing coburtura datafile -->
<delete file="${cobertura.datafile}"/>
<antcall target="cobertura.clean"/>
<!-- Instrument the code with cobertura to test for coverage -->
<cobertura-instrument todir="${cobertura.instrumented.classes}" datafile="${cobertura.datafile}">
<fileset dir="${build.dir}/classes/">
<include name="**/*.class"/>
</fileset>
</cobertura-instrument>
<fileset dir="${src.dir}">
<include name="**/*.java" />
</fileset>
<fileset dir="${tests.src.dir}">
<include name="**/*.java" />
</fileset>