Моя структура кода выглядит следующим образом:Как получить покрытие кода в Jenkins с помощью Jacoco и нескольких модулей?
события
сообщения
другой-код
функциональные тесты
В сценарии сборки для jacoco, сначала нужно скопировать все классы и используйте этот каталог классов для запуска инструмента. Не могли бы вы описать шаги по целевым каталогам здесь. Я имею в виду, как я упоминаю каталог, на котором можно запустить покрытие кода.
После сборки каждая папка имеет свою целевую папку с классами, расположенными рядом с ними.
Вот шаги:
- Построить проект как работу в Дженкинс
- развернуть его на пользовательском этапе
- Run jacoco отчет Работа в Дженкинс
Jacoco отчет работы объяснение :
Build step - maven 3.3.3 Голы - чистый тест и testuite, детали пользовательского этапа и другая информация передаются.
сообщение шаги - Выполнить оболочки
Невозможно отформатировать и вставить здесь, так загружены здесь: https://zerobin.net/?8a988cd05bf3d752#fbzMlW1b7uzD+HZnmwnd9WjQYBI3j95Q7DCIx6q+l0U=
Invoke верхние цели уровня Maven - Maven 3.3.3 -f jacoco_pom.xml jacoco: свалка antrun: запустить @ отчет
в clasDir
переменную, которая была использована в пасте оболочки должны иметь классы. Пока что я сделал это в начале сценария оболочки.
mkdir -p target/classes
cp -R messages/target/classes target/classes
и установить clsDir = target/classes
,
Таким образом, я получил отчет об этом модуле. Мой testuite содержал только один класс. Я хочу включить другие модули, например events
, other-code
, а также ссылки на источники.
Мне нужна помощь в том, как мне настроить его. Основная цель - генерировать отчеты о покрытии кода функциональных тестов.
EDIT:
Ответ: Ниже ответ помог, но все это было быть сделано с командой оболочки не любой пользовательского интерфейса. Итак, клонирование репо, сделав mvn clean package -DskipTests
и скопировав все подпапки первого уровня из всех папок модуля, помогло, но затем оно показало ошибку в охвате Несоответствие данных выполнения для файлов классов.Это означает, что класс инструментов и класс, который мы используем для покрытия, создаются отдельно разными JVM (один в Jenkins, другой, который развертывается на стадии).
Таким образом, решение было не клонировать и не перекомпилировать их, а загружать манифест из хранилища развертывания и распаковывать все банки. Таким образом, у меня были все классы в той же версии.
Вы ссылаетесь на некоторые сценарии сборки, но ИМО неясно, что это значит - существует множество различных инструментов сборки, и есть много способов выполнить JaCoCo в зависимости от инструмента построения - Maven Plugin, Ant Tasks и т. Д. не могли бы вы прояснить свой вопрос, желательно с более чистым примером - см. http://stackoverflow.com/help/mcve? – Godin
, пожалуйста, проверьте сейчас. – xploreraj