groovy - 断言是否有任何 TestStep 失败
问题描述
如果任何 TestSteps 使用 Groovy 脚本失败,我如何断言?我编写了一个 groovy 脚本脚本,除其他外,它运行另一个 TestCase,如果它失败,我希望它断言每个 TestStep(称为 TestCase)。目前它检查 TestSteps 但它不包括 Groovy 脚本步骤(其中包含断言的 Groovy 脚本步骤)。
这是我目前所拥有的......
//Get TestStepList from called Project
def assertFinishedStatus = testRunner.testCase.testSuite.project.workspace.getProjectByName(projectName).getTestSuiteByName(testSuitetName).getTestCaseByName(testCaseName).getTestStepList()
//Assert if any step with assertions failed in called TestCase
def moduleStatus = true;
assertFinishedStatus.each{
// check that testStep has assertionStatus
// (for example groovy testSteps hasn't this property since
// there is no asserts on its)
if(it.metaClass.hasProperty(it,'assertionStatus')){
if(it.assertionStatus == AssertionStatus.FAILED){
log.info "TestStep: ${it.name} - - - - - - - - - - - - Status: FAILED"
return moduleStatus = false;
}else if(it.assertionStatus == AssertionStatus.VALID || it.assertionStatus == AssertionStatus.UNKNOWN){
log.info "TestStep: ${it.name} - - - - - - - - - - - - Status: OK!"
return moduleStatus = true;
}
}
}
assert(moduleStatus != false)
更新:我希望下面的描述能澄清我想要实现的目标
我使用 Z_TC_DodawanieDwochLiczb_exp 来运行其他测试用例(在不同的项目中)。Groovy Script EXECUTE 完成所有工作(从一个 TestCase 获取属性并将它们设置为不同的,运行另一个 TestCase 等等......)。M_TC_Dodwanie 是我通过 Groovy Script TestStep EXECUTE_Dodawanie 运行的 TestCase,正如您可以看到它在 AssertResult Groovy Script Step 上失败,但没有失败 Z_TC_DodawanieDwochLiczb_exp (如果其他 TestCases 中的任何 TestStep(如 M_TC_Dodawanie)失败,我希望它这样做)。我希望它在 Z_TC_DodawanieDwochLiczb_exp 的 EXECUTE_Dodawanie TestStep 中完成。
我知道我不应该在其他测试用例/项目等之间做任何依赖,但是我必须这样做,因为这不取决于我
解决方案
Groovy 脚本测试步骤在其代码中包含断言,但您可以检查它们的结果:
for (r in testRunner.results ) {
// log.info "TestStep " + r.testStep.name + " status: ${r.getStatus()}"
assert r.getStatus().toString().equals("OK")
}
检查结果更可靠,因为 Groovy 脚本测试步骤和其他一些没有断言属性。
推荐阅读
- docker - kubectl exec 因 TLS 握手错误而失败
- assembly - 如何在 8086 中编写具有优先级的 PDP11 样式的硬件中断?
- android-studio - 无法解析 Android Studio 中的模块类
- c# - 我可以循环通过 Fluent API 中的类/模型名称来配置实体框架中的实体吗?
- angular - 了解评估参考
- javascript - 如何判断 Vue 组件是否处于活动状态
- python - 在 Django 模型中重构表
- nlp - 如何计算出序列中下一个最可能的字母,自然语言处理
- c - 如果所有条件都为真,则做某事
- spring-boot - java spring boot 应用程序无法将 zipkin 跟踪信息传递给 rabbitmq