需要在所有测试用例执行之前执行“运行状况检查”测试(功能)。 这就像执行一堆测试用例之前的初步测试。如果任何预检查失败,则需要解决方案退出平台。
答案 0 :(得分:1)
使用karate-config.js
/ karate.call
从karatecallSingle
执行健康检查功能,
如果您的功能未能使用Java System.exit
强制终止测试。
karate-config.js的片段
try{
var healthCheckInput = {};
var healthcheckCall = karate.callSingle("healthCheck.feature",healthCheckInput );
if (!<healcheckCondition>){
java.lang.System.exit(0);
}
}
catch(e){
java.lang.System.exit(0);
}
如果您的健康检查条件失败,这将迫使您退出执行。
不确定karate.abort()是否会从平台上退出,但是如果您打算实施,也请尝试此操作。
注意:由于System.exit()强制中止了您的执行,因此您将无法正确获取任何报告,但可以引用控制台日志/空手道日志 有待进一步调查。
编辑:
另一种方法
您可以在Junit @BeforeClass
内部使用karate Java API运行健康状态检查功能。
@BeforeClass
public static void startUpCheck() {
Map<String, Object> args = new HashMap();
args.put("inputOne", "valueOne");
Map<String, Object> result = Runner.runFeature("classpath:stackoverflow/demo/healthCheck.feature", args, true);
// also assert the 'result' if you want OR keep some assertions/match in your feature
}