Найти в Дзене

CucumberStudio + GitlabCI: фильтр по статусу тестов

Скрипт гитлаба у нас был настроен так, что сначала скачиваются все тесты из тест-рана, потом прогоняются те из скачанных, которые имеют определенный тэг (если он был указан), потом результаты пушатся обратно в тест--ран.
Проблема: не было возможности запускать только упавшие тесты.

Предыстория:

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

Проблема: не было возможности запускать только упавшие тесты. Учитывая, что тесты у нас громоздкие, занимают много времени да еще и падают через раз, отсутствие этой возможности сильно портило жизнь.

Решение: наскоро погуглив "cucumber + gitlabci + filter by status" я ничего не нашла. Возможно, плохо искала. Поэтому я написала прямо в техподдержку Cucumber Studio:

Hello, dear Cucumber Studio ! I have a question about using test-run results with our ci. We run our scenraios with Gitlab CI and for download features we use such a code: "hiptest-publisher --config-file ./hiptest- publisher-regression.conf --test-run-id $TEST_RUN_ID". So my question is is it possible to download only failed tests from the test-run?

На что они сразу ответили (у них вообще классная поддержка):

Hey,
There is a "--filter-on-status" option in hiptest-publisher CLI that allow you to fetch only tests with the given status of the latest build.

So, in your case, the command line would be:

hiptest-publisher --config-file ./hiptest- publisher-regression.conf --test-run-id $TEST_RUN_ID --filter-on-status="failed"

Все оказалось проще некуда, в документации hiptest-publisher кстати все это есть, но кто же читает документации..

Итак, я добавила в скрипт запуска новый параметр:

variables :
FILTER : "nofilter"
# other filters: skipped, retest, wip, blocked, undefined, passed

-2

И в шаг скачивания тестов условие: если параметр равен nofilter, т.е. если он вообще не указан в schedule, то скачиваем из тест-рана все подряд, иначе - фильтруем.


downloadFeatures :
script :
- env
- (if [ "$FILTER" == "nofilter" ]; then hiptest-publisher --config-file ./hiptest-publisher-regression.conf --test-run-id $TEST_RUN_ID; else hiptest-publisher --config-file ./hiptest-publisher-regression.conf --test-run-id $TEST_RUN_ID --filter-on-status="$FILTER"; fi);

-3

И теперь прям красота.

-4

То есть, нет, автотестами до сих пор нельзя нормально пользоваться в целях сокращения ручного тестирования, но это другая, длииинная история. Зато запускать их стало значительно удобнее.