Существуют ли какие-либо инструменты для просмотра истории прохождения / отказа модульных тестов относительно коммитов SCM? - PullRequest
2 голосов
/ 28 марта 2011

Это кажется таким легким делом, что я почти уверен, что-то подобное должно существовать.Я просто не знаю, где его найти.С другой стороны, возможно, есть технические причины, по которым это невозможно, и я просто их не вижу.

Но в принципе, мне кажется, было бы очень полезно, если бы, учитывая конкретный модульный тест,Можно было (с помощью CI-сервера, например Jenkins ) просмотреть историю коммитов, которые повлияли на красный / зеленый статус рассматриваемого теста.Итак, скажем, я хочу увидеть такую ​​историю для текстового блока X;Я мог бы видеть историю, похожую на эту:

Revision | Date       | Test X Status
-------------------------------------
123      | 2011-03-20 | Failed
120      | 2011-03-19 | Passed
119      | 2011-03-19 | Failed
112      | 2011-03-16 | Passed
111      | 2011-03-16 | Pending

Надеюсь, это имеет смысл: то, что я увидел бы, в основном представляло собой отфильтрованный список коммитов - только те, которые оказали какое-то влияние на результат конкретного юнитапроверяемый вопрос (X).

Существует ли такой инструмент ( где-нибудь ), так как в качестве отдельного инструмента, в качестве компонента некоторого программного обеспечения для совместной работы, в качестве плагина для Eclipse, VisualСтудия и пр.)?

1 Ответ

1 голос
/ 28 марта 2011

" Используйте REST , Люк. "

Этот быстрый и грязный скрипт Bash работает с Bamboo, я тестировал его с помощью Spring Framework CI server REST API:

echo "Revision        Date                            Test X Status"
echo "-------------------------------------------------------------"
url=https://build.springsource.org/rest/api/latest/result
for buildNumber in {1000..980}
do 
    curl -qs ${url}/SPR-TRUNKSNAPSHOT-${buildNumber} \
     | sed 's/^.*state="\(.*\)" key.*buildCompletedTime.\(.*\)..buildCompletedTime.*vcsRevisionKey.\(.*\)..vcsRevisionKey.*$/\3\t\t\2\t\1/'
    echo
done

Самая уродливая часть - анализ XML с использованием sed (примечание: жаль, что оболочка Linux не предоставляет встроенных инструментов командной строки XPath / XSLT, давай , это XXI век!), Но это работает:

Revision    Date                             Test X Status
-------------------------------------------------------------
4086        2011-03-13T01:09:13.319-08:00    Successful
4083        2011-03-12T01:05:49.145-08:00    Successful
4081        2011-03-11T01:04:46.949-08:00    Successful
4074        2011-03-10T01:09:11.003-08:00    Successful
4069        2011-03-09T01:10:17.766-08:00    Successful
4069        2011-03-08T01:09:34.492-08:00    Successful
4069        2011-03-07T06:43:51.054-08:00    Successful
4068        2011-03-07T03:50:41.909-08:00    Failed
4068        2011-03-07T00:53:55.523-08:00    Failed
4060        2011-03-06T01:06:50.758-08:00    Failed
4060        2011-03-05T01:08:35.477-08:00    Successful
4057        2011-03-04T01:08:52.870-08:00    Successful
4056        2011-03-03T01:10:00.473-08:00    Successful
4056        2011-03-02T01:09:15.679-08:00    Successful
4055        2011-03-01T01:13:19.069-08:00    Successful
4051        2011-02-28T01:08:32.165-08:00    Successful
4050        2011-02-27T00:59:33.392-08:00    Successful
4050        2011-02-26T01:15:01.113-08:00    Successful
4036        2011-02-25T01:09:35.420-08:00    Successful
4032        2011-02-24T01:13:29.997-08:00    Successful
4030        2011-02-23T00:56:51.656-08:00    Failed

Дженкинс также имеет поддержку REST , так что это не должно занять у вас больше 30минут, чтобы переписать мой код.

...