У меня есть мастер Jenkins Job, основанный на DSL-конвейере.Этот узел генерирует мою сборку .NET.После завершения MSBuild я архивирую артефакты на главном сервере и инициирую сборку конвейера DSL на отдельном подчиненном узле.Я изменил рабочую область jenkins на каталог клиента «C: \ P4Source»
Подчиненный узел загружает весь артефакт сборки и распаковывает в «C: \ P4Source» на подчиненном узле.Затем он запускает различные тесты, используя nunit3-console, OpenCover и ReportGenerator / Cobertura
Подчиненный узел делится этими .xmls, включая cobertura.xml, через общий сетевой ресурс с главным узлом.Главный узел использует этап конвейера cobertura для публикации отчета.
Здесь я сталкиваюсь с проблемой, потому что получаю ошибку
Исходный код недоступен.Вот некоторые возможные причины:
Это не самая последняя сборка (для экономии места на диске этот плагин сохраняет только исходный код самой последней сборки).Cobertura нашел исходный код, но не предоставил достаточно информации, чтобы найти исходный код.Cobertura не смог найти исходный код, поэтому у этого плагина нет надежды найти его.У вас недостаточно прав для просмотра этого файла.
Причина этого заключается в том, что файл cobertura.xml, который я получил от подчиненного узла, имеет полный путь к исходному коду, например
"C: \ P4Source .."
.Даже при том, что у меня есть та же самая структура папок на моем ведомом узле во время публикации отчета Cobertura, я получаю ошибку
, исходный код недоступен
После некоторого исследования, это кажетсячто проблема связана с абсолютными именами файлов в моем cobertura.xml
<package name="MyService" line-rate="0.479638009049774" branch-rate="0.39" complexity="NaN">
<classes>
<class name="MyClass" filename="C:\P4Source\MyProject\src\Result.cs" line-rate="0" branch-rate="1" complexity="NaN">
Я изменил имя пути, чтобы использовать относительный путь
".\ src \ Result.cs "
, а затем плагин Cobertura может публиковать отчет без жалоб на исходный код, связанный с отчетом о покрытии.
Мои вопросы:
- Что я делаю неправильно и как я могу получить относительные имена путей в файле Cobertura.xml?
- Это проблема, потому что я настроил свой каталог рабочей области?(после установки плагина)