我使用以下代码来获取跳过的测试用例计数
的计数public void onFinish(ITestContext context) {
skippedTests =context.getSkippedTests().getAllResults();
for (ITestResult temp : skippedTests) {
ITestNGMethod method = temp.getMethod();
if (context.getSkippedTests().getResults(method).size() > 1) {
skippedTests.remove(temp);} else {
if (context.getPassedTests().getResults(method).size() > 0) {
skippedTests.remove(temp);
}
else{if(context.getFailedTests().getResults(method).size() > 0){
skippedTests.remove(temp);
}
}
}
}
但是,当套件完全执行跳过的测试用例计数时,很多次都会计算所有跳过的方法(包括跳过前类,跳过方法跳过...等),而不仅仅是跳过测试用例的计数。
请让我知道我错过了什么。
答案 0 :(得分:0)
您可以在结尾处过滤掉所有非测试方法,如下所示
public void onFinish(ITestContext context) {
Set<ITestResult> skippedTests = context.getSkippedTests().getAllResults();
for (ITestResult temp : skippedTests) {
ITestNGMethod method = temp.getMethod();
//If the method is not a @Test annotated method, then lets remove that from the skipped lists
if (!method.isTest()) {
skippedTests.remove(temp);
continue;
}
if (context.getSkippedTests().getResults(method).size() > 1) {
skippedTests.remove(temp);
} else {
if (context.getPassedTests().getResults(method).size() > 0) {
skippedTests.remove(temp);
} else {
if (context.getFailedTests().getResults(method).size() > 0) {
skippedTests.remove(temp);
}
}
}
}
}