Предыстория:
Скрипт гитлаба у нас был настроен так, что сначала скачиваются все тесты из тест-рана, потом прогоняются те из скачанных, которые имеют определенный тэг (если он был указан), потом результаты пушатся обратно в тест--ран.
Проблема: не было возможности запускать только упавшие тесты. Учитывая, что тесты у нас громоздкие, занимают много времени да еще и падают через раз, отсутствие этой возможности сильно портило жизнь.
Решение: наскоро погуглив "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
И в шаг скачивания тестов условие: если параметр равен 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);
И теперь прям красота.
То есть, нет, автотестами до сих пор нельзя нормально пользоваться в целях сокращения ручного тестирования, но это другая, длииинная история. Зато запускать их стало значительно удобнее.