我正在编写一个小的集成文件来从java中的TestCase Management工具中检索测试用例,其中我有以下几种情况: -
1)我有一个“失败”的测试用例,那个时候我正在检查使用测试用例名称的失败测试用例的缺陷管理工具中是否存在任何缺陷,因为测试用例名称和缺陷名称在我们的例子中是相同的。 如果不是,我正在记录新的缺陷。这很好。
2)在另一种情况下,我有第一次“通过”的测试用例,因为我也在检查缺陷管理工具中是否存在任何重复缺陷,尽管我不会记录任何缺陷。
我这样做是因为,我不知道第一次尝试中的测试用例是“通过”还是“失败”。因此,我正在执行此强制检查,以查看“通过”和“失败”测试用例是否存在重复缺陷。 我知道检查“pass”测试用例的缺陷是否存在是错误的。但我没有选择。如果测试用例被“传递”,我们有什么方法可以忽略调用缺陷方法的重复存在? 我希望你们这个人有意见。
这是我的代码: -
private int NOT_TESTED = 0;
private int PASSED_1 = 0;
private int PASSED_2 = 0;
private int FAILED =0;
private String testStatus = "pass"; // will be fetched dynamically
private void execute(){
if(testStatus.equalsIgnoreCase("fail")){
//FAILED--;
FAILED = FAILED + 1;
System.out.println("the failed value is:"+FAILED);
}else if(testStatus.equalsIgnoreCase("pass")){// first attempt
PASSED_1 = PASSED_1 + 1;
System.out.println("the Passed_1 value is:"+PASSED_1);
if(PASSED_1 == 1){
System.out.println("Passed in the first attempt, hence no need to create a defect");
}
}else if(testStatus.equalsIgnoreCase("pass") && FAILED ==1){// second attempt
PASSED_2 = PASSED_2+1;
System.out.println("the Passed_2 value is:"+PASSED_2);
if(PASSED_2 ==1){
System.out.println("Passed in the second attempt, create a defect");
// logic to create a new defect
}
}else {
System.out.println("The test not tested");
}
}
此代码无效,因为它总是进入第一次尝试通过状态,因此请提供一个解决方案,以确定是否在第二次尝试(FAIL-> PASS)中传递了测试用例,以便我们可以采取适当的措施对此。
提前致谢。
答案 0 :(得分:0)
如果条件(testStatus.equalsIgnoreCase("pass") && FAILED ==1)
为真,则表示前面的条件也为真:
if(testStatus.equalsIgnoreCase("pass"))
由于您使用了if-else,它将进入第一个条件,然后跳过其余条件。 在这两者之间切换会给你想象的结果。