我有Sanity testsuite testng xml,其中包含多个测试套件,我想获得Sanity测试套件的结果并在控制台上显示。
我尝试使用IsuiteListener,我得到了各个测试套件的结果。
有人可以帮助我获得在健全测试套件下运行的所有测试套件的综合结果吗?
package utilities;
import java.util.Map;
import org.testng.ISuite;
import org.testng.ISuiteListener;
import org.testng.ISuiteResult;
import org.testng.Reporter;
public class Listener implements ISuiteListener
{
@Override
public void onStart(ISuite arg0) {
Reporter.log("About to begin executing Suite " + arg0.getName(), true);
}
@Override
public void onFinish(ISuite suite)
{
Map<String,ISuiteResult> results=suite.getResults();
for(String key: results.keySet())
{
ISuiteResult con = results.get(key);
int totaltestcases=con.getTestContext().getAllTestMethods().length;
int passtestcases= con.getTestContext().getPassedTests().size();
int failedtestcases=con.getTestContext().getFailedTests().size();
int skippedtestcases=con.getTestContext().getSkippedTests().size();
int percentage=(passtestcases*100)/totaltestcases;
System.out.println("PASS PERCENTAGE : "+percentage+"%");
}
}
}
以下是Sanity Test Suite xml
<suite name="Sanity Test Suite">
<listeners>
<listener class-name="utilities.Listener"></listener>
</listeners>
<suite-files>
<suite-file path="TestSuit_01.xml"/>
<suite-file path="TestSuit_02.xml"/>
</suite-files>
</suite>
答案 0 :(得分:0)
您应构建TestNG侦听器org.testng.IReporter
的实现,该实现在所有套件运行完成后执行,然后通过<listeners>
标记在套件xml文件中引用此侦听器。