Ошибка, по-видимому, связана с шагами в вашем файле build.gradle
или с тем, как вы вызываете функцию в скрипте Bash.
Небольшая настройка теста.Предположим, что следующая структура #! / Bin / bash
run-gradle-loop.sh # executable script
gradle # executable script, as simple replacement
src/test/subdir/file2_Steps.feature # a dummy file
src/test/file1_Steps.feature # a dummy file
run-gradle-loop.sh
#!/bin/bash
function run_cucumber_features {
for file in $(find ./src/test -name '*Steps.feature' -print0 | xargs -0);
do
gradle cucumberTest -Dcucumber.options="$file" DmutationTesting="false" -DmutationParameter="$parameter";
echo "return code = $?"
done
}
# to run the gradle script in the current directory
export PATH=$(pwd):${PATH}
run_cucumber_features
gradle
#!/bin/bash
echo
echo "running gradle dummy"
echo "passed parameters : $@"
# exit with an error code
exit 1
file1_Steps.feature и file2_Steps.feature - это два пустых файла, только для соответствия критериям цикла.
Цель теста -чтобы проверить поведение выхода gradle
с кодом ошибки.
запустить основной скрипт Bash
./run-gradle-loop.sh
output
running gradle dummy
passed parameters : cucumberTest -Dcucumber.options=./src/test/subdir/file2_Steps.feature DmutationTesting=false -DmutationParameter=
return code = 1
running gradle dummy
passed parameters : cucumberTest -Dcucumber.options=./src/test/file1_Steps.feature DmutationTesting=false -DmutationParameter=
return code = 1
Это показывает, что даже gradle
вернется с кодом ошибки, цикл обрабатывает все .*Steps.feature
файлы.
edit Одним из способов остановки после первой ошибки может быть то, что в скрипте run-gradle-loop.sh
естьset -e
оператор.
man bash
-e Выйти немедленно, если конвейер (который может состоять из одной простой команды), список или составная команда
Что значит.Когда сценарий gradle
завершается с ошибкой, элемент управления не возвращается к run-gradle-loop.sh
.Выход с вышеуказанной настройкой будет
$ ./run-gradle-loop.sh
running gradle dummy
passed parameters : cucumberTest -Dcucumber.options=./src/test/subdir/file2_Steps.feature DmutationTesting=false -DmutationParameter=