Задача Jacoco ant - нет вывода jacoco.exec

Я настроил свою задачу Ant как

<target name="test" depends="init">
    <jacoco:coverage destfile="target/jacoco.exec">
        <junit printsummary="yes" haltonfailure="yes" fork="yes" forkmode="once">
            <classpath refid="my_project.path"/>
            <formatter type="plain"/>
            <formatter type="xml"/>
            <batchtest fork="false" todir="target/test-reports">
                <fileset dir="test">
                    <include name="**/*Test.java"/>
                </fileset>
            </batchtest>
        </junit>
    </jacoco:coverage>
</target>

Что дает ожидаемый результат junit. Однако target/jacoco.exec никогда не создается. У меня нет ошибок во время выполнения задачи ant test report.

test: [jacoco:coverage] Улучшение junit с покрытием

...

[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,009 sec

отчет: [jacoco: отчет] Загрузка файла данных выполнения /home/usr/Workspaces/my_project/target/jacoco.exec

BUILD FAILED /home/usr/Workspaces/my_project/build.xml:73: невозможно прочитать файл данных выполнения /home/usr/Workspaces/my_project/target/jacoco.exec

Общее время: 14 секунд

Кажется, я что-то упускаю, не могу понять, что именно.


person Olivier.Roger    schedule 04.04.2013    source источник


Ответы (3)


Я нашел причину. Это глупо, но не было ведения журнала, указывающего на ошибку:

пакетный тест fork="true" todir="target/test-reports"

В пакетном тесте для параметра fork было установлено значение false. При установке значения "true" создается ожидаемый файл jacoco.exec.

person Olivier.Roger    schedule 04.04.2013
comment
Можете ли вы или кто-то уточнить, какие ценности работают для jacoco и почему (с той же проблемой) - person pvgoddijn; 16.09.2014

Одного запуска задачи report недостаточно. Вам нужно будет настроить и запустить задачу Ant coverage, чтобы разрешить запись данных о покрытии в файл jacoco.exec. См. здесь

person Ori Dar    schedule 04.04.2013
comment
Я вызываю coverage в тестовой задаче, которая запускается перед report. Разве этого недостаточно для создания выходного файла? - person Olivier.Roger; 04.04.2013
comment
К сожалению, вы запускаете задачу охвата. Создалось впечатление, что вы выполняете задачу отчета. Очевидно, придется снова искать в вашей конфигурации. Мои извинения - person Ori Dar; 04.04.2013
comment
@Olivier.Roger Из документации: Вложенная задача всегда должна объявлять fork=true, иначе задача покрытия не сможет записать информацию о покрытии и завершится ошибкой. Эквивалентно ли `fork=yes'? Прошли годы с тех пор, как я в последний раз работал с Ant - person Ori Dar; 04.04.2013
comment
Вы правы, должно быть fork=true, так и было, но я много чего перепробовал, ошибся при установке обратно. По-видимому, это эквивалентно, поскольку ошибка указывает на то, что в противном случае тесты не разветвляются. Я переключил его обратно на fork=true и не увидел никаких изменений в результате. - person Olivier.Roger; 04.04.2013
comment
Спасибо, это действительно был параметр форка, который вызывал проблему, но параметр в пакетном тесте, а не в junit;) - person Olivier.Roger; 04.04.2013

Столкнулся с той же проблемой, для меня мой юнит не подходил. Перейдите по ссылке здесь

person Showmik Bose    schedule 12.06.2020