从bash脚本中逐个执行javacumber特性文件,并在第一个特性文件完成后继续执行
我需要在MacOS High Sierra上使用bash脚本,一个接一个地运行一堆Java cucumber特性文件。我遇到的问题是,一旦第一个功能文件执行完毕(成功或失败),Cucumber框架就会报告该功能文件,而我的脚本不会执行其余的功能文件。它“返回”到命令行
下面是逐个运行cucumber文件的脚本的一部分:
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";
done
}
例如,假设我执行脚本:
./mutation_testing.sh
然后,脚本调用Cucumber,并执行脚本找到的第一个功能,然后使用该特定功能的状态代码“退出”:
BUILD Success in 18s
7 actionable tasks: 5 executed, 5 succeeded
但是,它不会继续执行下一个要素文件,而是返回到命令行:
username$
我的问题是,是否有一种方法可以让我的脚本在Cucumber在每个已执行的功能文件完成报告后不停止执行
# 1 楼答案
该错误似乎与
build.gradle
文件中的步骤或Bash脚本中调用函数的方式有关一个小型测试装置。假设以下结构#/宾/巴什
运行gradle循环。sh
gradle
file1_步骤。功能和文件2_步骤。feature是两个空文件,只满足循环条件
测试的目的是检查
gradle
退出时出现错误代码的行为运行主Bash脚本
输出
这表明,即使是
gradle
也会返回错误代码,循环会处理所有.*Steps.feature
文件edit在出现第一个错误后,它可能会停止的一种方式是
run-gradle-loop.sh
脚本中有一个set -e
语句man bash
也就是说。当脚本
gradle
失败并出现错误时,控件不会返回到run-gradle-loop.sh
。具有上述设置的输出将为