我正在编写一个小的集成块,以从Java中的TestCase Management工具中检索测试用例,在这种情况下,我具有以下情形:
1)我有一个“失败”的测试用例,那个时候我正在使用测试用例名称检查失败的测试用例的缺陷管理工具中是否已经存在任何缺陷,因为测试用例名称和缺陷名称在我们的情况。
如果没有,我正在记录新的缺陷。这可以。
2)在另一种情况下,我第一次有一个“通过”的测试用例,为此,我还要检查缺陷管理工具中是否存在任何重复的缺陷,尽管我不会记录任何缺陷。
我这样做是因为,我不知道测试用例在第一次尝试中是“通过”还是“失败”。因此,我正在执行此强制检查,以查看“通过”和“失败”测试用例是否存在重复的缺陷。
我知道为“通过”测试用例检查缺陷是否重复存在是错误的。但是我没有选择。如果测试用例“通过”,我们有什么办法可以忽略调用缺陷方法的重复存在?
我希望你们对此有意见。
这是我的代码:
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),以便我们对此采取适当的措施。
提前致谢。
最佳答案
如果条件(testStatus.equalsIgnoreCase("pass") && FAILED ==1)
为true,则表示它前面的条件也为true:
if(testStatus.equalsIgnoreCase("pass"))
由于您使用了if-else,它将进入第一个条件,然后跳过其余条件。
我认为,在这两者之间切换会给您所需的结果。