Дичайше захотев привнести thucydides report в TeamCity, решил запилить во чтобы то ни стало. Инфа мелькала на atInfo не так давно:
При первом ознакомлении мануал оказался неоднозначным. Пришлось применить метод древнеруской тоски и вызвать дух коментерна, чтобы разобраться в том что написано.
Дано:
1. TeamCity c настроенным СI для тестов.
2. Thucydides, ласково перебирающий по ночам тесты на сервере.
3. Maven3 и Java
4. Репорт Thucydides, который генерится на виртуалке.
Никто не знает что делают тесты, покрыта мраком суть применения Thucydides
Нужно:
Запилить чтобы красиво и публично.
Итак, задача делится на 3 шага:
- подготовить артефакт с репортом
- залить артефакт на сервер тимсити
- создать кастомную табу в тимсити, на которой будет доступен отчет.
1) Готовим артефакт.
Артефакт, по сути, это любой файл или архив, который может использоваться в тимсити.
У нас, в качестве артефакта, должно выступать заархивированное содержимое стандартной папки проекта target\site\thucydides\ в которой находится сайт отчета.
Напомню, что сам сайт генерируется по команде thucydides.maven.plagin - thusydides:aggrigate
Идем к мавену, берем pom.xml и пишем:
<profiles>
<profile>
<id>thucydides</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<finalName>configuration</finalName>
<descriptors>
<descriptor>src/test/resources/assembly/TeamCity-artifact.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>site</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
В пекедж проэкта resources, по адресу src/test/resources, добавляем папку assembly, а туда xml
TeamCity-artifact.
<assembly>
<id>TC_REPORT</id>
<includeBaseDirectory>false</includeBaseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<outputDirectory>/</outputDirectory>
<directory>target/site/thucydides</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
</fileSets>
</assembly>
Можно это все сразу в помник записать. Я предпочел разделить.
Теперь у нас на maven фазе site будет собираться .zip содержащий отчет.
Осталось дописать фазу site в конец Build Step:Maven в настройках TeamCity
у меня билд степ выглядит так:
Шаг2.
Теперь, после того, как мавен прогоняет тесты на виртуалке, он генерит сайт и ложит его в архив. Все еще на тойже виртуалке.
Нужно отправить его на сервер TeamCity.
Идем в настройки проэкта TeamCity. General Settings -> Artifact paths
И дописываем туда путь к вашему архиву, либо просто /**/*.zip, тогда тимсити выберет все зип архивы в чекаут дириктории, которые найдет. (У меня он один :)
Шаг3.
Теперь идем на сетинги основного проекта в тимсити. Тут важно понимать, что автоматизация, которую вы запускаете , является таском, внутри проекта. Нужно сетапить именно проект.
Там есть закладка Report Tabs, на которой можно создать собственную табу.
В качестве Start page выбираем Index.html из нашего отчета.
Теперь на странице проекта , у меня появилась новая закладка , при клике на которую открывается репорт в окне тимсити.
Готово!
Просто оставлю здесь своё "Спасибо" :-)
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалить