我正在写一个小的集成代码,以便从java中的TestCase管理工具中检索测试用例,其中我有以下场景:
1)我的测试用例是“失败的”,此时我使用测试用例的名称来检查失败的测试用例的缺陷管理工具中是否已经存在任何缺陷,因为在我们的用例中测试用例名称和缺陷名称是相同的。如果没有,我将记录新的缺陷。这很好。
2)在另一种情况下,我的测试用例是第一次“通过”的,因为我也在检查缺陷管理工具中是否存在任何重复的缺陷,即使我不会记录任何缺陷。
我之所以这样做,是因为我不知道测试用例在第一次尝试时是“通过”还是“失败”。因此,我做了这个强制性的检查,看看“通过”和“失败”测试用例是否存在重复的缺陷。我知道为“通过”测试用例检查缺陷的重复存在是错误的。但我别无选择。如果测试用例“通过”了,我们有什么办法可以忽略defect方法的重复调用吗?我想听听你们的意见。
这是我的代码:
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");
}
}此代码不起作用,因为它总是转到第一次通过尝试状态,因此请提供一个解决方案,以确定测试用例是否在第二次尝试中通过(失败->通过),以便我们可以对此采取适当的操作。
提前谢谢。
发布于 2010-11-18 21:28:10
如果条件(testStatus.equalsIgnoreCase("pass") && FAILED ==1)为真,则意味着它之前的条件也为真:
if(testStatus.equalsIgnoreCase("pass"))由于您使用了if-else,它将进入第一个条件,然后跳过其余的条件。我认为在这两者之间切换会给你想要的结果。
https://stackoverflow.com/questions/4215102
复制相似问题