- PVSM.RU - https://www.pvsm.ru -
Доброго времени суток, любители зажать конструируемую систему в рамки разнообразных тестов! Многие из вас пользуются средствами для создания системных тестов. Кто-то даже использует FitNesse [1], о котором на Хабре немного рассказывали [2]. Поэтому не буду повторяться и писать про то, что такое FitNesse и с чем его едят. Лучше расскажу про то, как заставить проект «заниматься фитнесом» в процессе сборки, которая протекает при помощи TeamCity [3].
Интересненько? Тогда добро пожаловать под кат.

Решать будем последний пунктик путем скрещивания TeamCity Buildrunner и FitNesse. Делать это можно по-разному: можно самостоятельно настраивать связку FitNesse runner + TeamCity [4], а можно пойти простым путём и воспользоваться специально обученным плагином [5]. Из коробки плагин умеет запускать FitNesse по указанному в настройках пути, прогонять тесты и выдавать краткую статистику. В общем, чудо, но расстраивает следующим:
Поэтому наша команда решила взять плагинчик, допилить его под наши фантастические требования и поделиться с сообществом. Перепиленный плагин доступен на GitHub [6].
Кратенько опишу процесс установки и настройки. В целом он похож на тот, что описан в README оригинального плагина, однако теперь FitNesse должен быть кем-нибудь запущен на BuilAgent'е заранее. И т.к. он там будеть шуршать постоянно, можно в любой момент времени зайти и запустить любой понравившийся тест руками.
java -jar fitnesse-standalone.jar -p 8080 -d ~/BuildAgent/work/branch/test/src/Fitnesse
А т.к. при сборке BuildAgent обновляет папку branch/test/src/Fitnesse, то у FitNesse всегда в наличии будут тесты собираемой ветки.
Примерно такие картиночки сможем наблюдать на выходе. Это увидим в результатах тестирования:

А это в buil log'ах:

Для полного счастья осталось заставить ссылки работать «как ссылки», в чем может помочь вот эта статья [7]. Но это уже обсуждение другого плана.
Во-первых, один раз разработав и задокументировав API, который доступен из FitNesse, тестировщика больше не придется просить писать PHP-код. У него появляется единственный инструмент — Wiki-разметка, которой он пишет сценарии тестов и заодно документацию. Если понадобится новая API-ручка, то ее напишет не тестировщик, а команда разработчиков. Которым за код, собственно, деньги платят :).
Во-вторых, вести документацию по системе можно прямо на страничке с тестами. Новым сотрудникам будет полезно поковыряться с такой базой знаний. Да и сам стиль написания FitNesse тестов гораздо более удобен для восприятия человеком, знакомым с английским языком. При желании можно даже менеджерам показывать — пускай видят, что «User Vasya logs in with password vasyapassword and receives alert with message „PANIC!!“ », и это реально работает :).
Просьба не судить плагин чересчур строго — он еще «молодой и неопытный» :) Если кого-то заинтересовало, то не стесняйтесь его допиливать/довешивать так, как душе угодно. И пускай всем будет польза.
Автор: elgris
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/testirovanie/17196
Ссылки в тексте:
[1] FitNesse: http://fitnesse.org/
[2] немного рассказывали: http://habrahabr.ru/post/85831/
[3] TeamCity: http://www.jetbrains.com/teamcity/
[4] настраивать связку FitNesse runner + TeamCity: http://stas-blogspot.blogspot.com/2011/07/integration-of-teamcity-6x-and-fitnesse.html
[5] специально обученным плагином: https://github.com/EKibort/TeamCityFitnessePlugin
[6] Перепиленный плагин доступен на GitHub: https://github.com/elgris/TeamCityFitnessePlugin
[7] вот эта статья: http://atombrenner.blogspot.com/2012/09/embed-url-links-in-teamcity-build-logs.html
Нажмите здесь для печати.