Всем привет. В предыдущей статье мы рассмотрели установку и создание сайта Cruise Control в IIS. Теперь подошло время к непосредственной интеграции.
Что ж, поехали… В качестве проекта сборки и автотестов предлагаю использовать рассмотренный ранее фреймворк автоматизации. Сам проект содержит WPF-приложение и подпроект функциональных UI тестов. В конфиге я настроил следующий путь для проекта: D:\WORK\Automation\SampleApp-master\SampleApp-master\
Также, для запуска тестов, тестируемое приложение должно находится в папке: C:\SampleApp\SampleApp\bin\Debug
Настройка ccnet.config
Файл конфигурации находится в директории: C:\%ProgramFiles%\CruiseControl.NET\server.
Откройте файл ccnet.config и просмотрите его структуру.
ccnet.config – это xml-файл с корневым элементом <cruisecontrol> и дочерними элементами для выполнение каких-либо действий:
1 2 3 4 5 6 7 8 |
<cruisecontrol> <project name="project1"> ... </project> <project name="project2"> ... </project> </cruisecontrol> |
Нам понадобится Bat-файл для удаления XML-файла test1.trx, который генерится лишь для того, чтобы отобразить результаты выполнения задач на веб-интерфейсе CC.Net.
Создайте файл deltrx.bat в директории проекта: D:\WORK\Automation\SampleApp-master и поместите в него следующую команду:
1 |
del D:\WORK\Automation\SampleApp-master\test1.trx |
Блок Tasks
В нашем случае в этом блоке будут осуществлятся основные задачи: задача MsBuild, которая будет собирать проект Visual Studio solution, а потом задача Executable для запуска тестов, если первая задача прошла успешно.
Давайте рассмотрим дочерние xml-ноды <msbuild>:
<executable>: содержит путь к исполняемому файлу msbuild. Путь по-умолчанию:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe.
<projectFile>: название проекта для сборки. MsBuild принимает солюшен файл проекта Visual Studio.
<buildArgs>: эта строка предоставляет дополнительные команды для MsBuild.
Логи сборки будут находится в директории: D:\WORK\Automation\SampleApp-master\Machine2Repo
Конечный листинг конфига выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> <!-- this name appears in web dashboard --> <project name="CruiseControlSampleTestDemo"> <artifactDirectory>D:\WORK\Automation\SampleApp-master\Machine2Repo</artifactDirectory> <tasks> <msbuild> <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> <projectFile>D:\WORK\Automation\SampleApp-master\SampleApp-master\AutoQA.ORG.sln</projectFile> <timeout>1400</timeout> <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> </msbuild> <exec> <executable>D:\WORK\Automation\SampleApp-master\deltrx.bat</executable> <buildArgs></buildArgs> <buildTimeoutSeconds>30</buildTimeoutSeconds> </exec> <exec> <executable>C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\MSTest.exe</executable> <buildArgs>/testcontainer:D:\WORK\Automation\SampleApp-master\SampleApp-master\SampleApp.Tests\bin\Debug\SampleApp.Tests.dll /resultsfile:D:\WORK\Automation\SampleApp-master\test1.trx</buildArgs> <buildTimeoutSeconds>60</buildTimeoutSeconds> </exec> </tasks> <publishers> <!--to get the test results in the dashboard we have to merge the results XML file --> <merge> <files> <file>D:\WORK\Automation\SampleApp-master\test1.trx</file> </files> </merge> <xmllogger /> </publishers> </project> </cruisecontrol> |
Запуск тестов
Сохраните файл и перейдите на сайт ccnet в IIS. Перегрузите сайт ccnet и нажмите browse в контекстном меню default.aspx. Откроется ссылка http://localhost:523/server/local/ViewServerReport.aspx
Можно увидеть, что тесты уже запускались.
Чтобы выполнить задачу по запуску тестов, нажмите “Forse”. Чтобы убедится, что процесс пошел, можно нажать на кнопку “Refresh status”.
После выполнения тестов можно заметить, что тесты прошли успешно:
Количество запущенных тестов можно увидеть на странице “View Build Logs”: