Мы используем cruisecontrol для наших ежедневных автоматических тестов.Мы используем фреймворк JUnit.Для каждого случая у нас есть выходной файл, отличный от файла журнала случая junit.Мы добавляем выходные файлы в каталог артефактов проекта после завершения сборки.Мы используем встроенный XSL-файл «unittests.xsl» для публикации результатов электронной почты.Недавно я хочу изменить файл xsl «unittests.xsl», чтобы добавить гиперссылку на выходной файл для каждого случая.Вот что я попробовал в самом начале:
<td class="unittests-data" width="300">
<a href="{concat('artifacts/',$projectname,'/',$cctimestamp,'/autotest_logs/',..//..//@name,'_',..//@name,'.log')}"><xsl:value-of select="..//@name"/></a>
</td>
Проблема здесь в том, что URL выходного файла может работать при открытии страницы результатов с помощью веб-браузера;но URL-адрес неправильный в результате почты.В почте URL-адрес выглядит так: http://localhost:18080/cruisecontrol/buildresults/artifacts/...
Но я хочу:
http://localhost:18080/cruisecontrol/artifacts/...
Так что я думаю о другом способе решения этой проблемы,Моя мысль заключалась в том, чтобы вывести свойство корневого URL в журналы проекта, чтобы XSL-файл мог получить его значение следующим образом:
<xsl:variable name="urlroot" select="/cruisecontrol/info/property[@name='urlroot']/@value"/>
<td class="unittests-data" width="300">
<a href="{concat($urlroot,'artifacts/',$projectname,'/',$cctimestamp,'/autotest_logs/',..//..//@name,'_',..//@name,'.log')}"><xsl:value-of select="..//@name"/></a>
</td>
Проблема здесь заключается в свойствах проекта (определенных в config.xml) не передаются в журналы проекта.Так что я не могу сделать это таким образом.
Есть ли другой способ добиться этого?Заранее спасибо.