Объединить издателя — что на самом деле делает в CruiseControl.Net ?

#cruisecontrol.net #testcomplete

#cruisecontrol.net #testcomplete

Вопрос:

Я унаследовал проект, который запускает скрипты TestComplete от CruiseControl. Для каждого скрипта есть запись в CCNet.Config, и каждая запись заканчивается следующим:

 <publishers>
  <merge>
   <files>
     <file action="Copy">
        C:TestLogTestCompleteResultTestWebLog.mht
     </file>
   </files>
  </merge>
 <xmllogger />
 <statistics />
  

Который, как я предполагал, копирует журнал TestComplete в это местоположение. Однако, если я изменю местоположение (т. Е. на C:testlog2TestWebLog.mht ) файл по-прежнему оказывается в C:TestLogTestCompleteResult. Я пытался отключить CruiseControl, перезагрузить систему и т.д., И файл по-прежнему оказывается в том же месте.

Я удалил каталог и файл, проверил отметку времени и просмотрел файл журнала. Все указывает на то, что это новый файл, созданный самым последним запуском скрипта TestComplete, но он всегда помещается в одно и то же место: C:TestLogTestCompleteResultTestWebLog.mht.

Есть ли какое-нибудь другое место, где можно определить этот путь?

Ответ №1:

Из CruiseControl.NET Wiki :

Копирование: вместо объединения данных в журнал сборки, он скопирует указанные файлы в папку «сборка» в папке артефактов для проекта

В ccnet.config вы можете указать каталог артефактов для каждого проекта, в который будут помещены результаты сборки.

 <project name="Project">
<artifactDirectory>C:ProjectDirartifacts</artifactDirectory>
...
</project>
  

Действие слияния по умолчанию заключается в объединении указанного файла с result.xml найдено в каталоге артефактов.
Действие слияния «Копировать» копирует указанный файл в папку artifactdirectory Build.

Файл, указанный вами в <file>...</file> тегах, является исходным файлом, который будет скопирован в папку артефактов.

Ответ №2:

<merge> Издатель включает существующий файл в отчет о сборке. Если вы хотите изменить местоположение, в котором создается файл, вам нужно изменить конфигурацию задачи (т. Е. в том месте, где фактически вызывается TestComplete).