我不想创建新的或自定义侦听器。那可能吗?在TestNG中创建的html报告在哪里?
答案 0 :(得分:1)
SuiteHTMLReporter [source]是创建html报告的记者。您可以扩展和覆盖。禁用默认侦听器并添加自己的侦听器。
答案 1 :(得分:1)
我知道这已经过时了,但可以编辑这些报告,并且可以像下面那样制作自定义报告。我已解释here如何编辑TestHTMLReporter
使用customReport
您必须实施IReporter
,如果要实施自定义TestHTMLReporter
,请展开TestListenerAdapter
并覆盖generateReport
方法。对于其他记者,您可能需要做一些不同的事情,但概念将保持不变。您将获得如下所示的自定义“TestHTMLReporter”。
在项目中创建CustomReport.java
文件并复制粘贴TestHTMLReporter.java
的全部内容,在getOutputFile
方法中更改文件名称,如下所示
public class CustomReport extends TestListenerAdapter implements IReporter {
@Override
public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites,
String outputDirectory) {
}
...
//paste the content of TestHTMLReporter.java here
...
...
确保所有导入都来自TestHTMLReporter.java
现在,在此文件中根据您的要求进行更改。例如:如果您想添加每个测试的结束时间,请在generateTable
方法的正确位置添加以下代码段
// Test class
String testClass = tr.getTestClass().getName();
long testMillis = tr.getEndMillis();
String testMillisString = Long.toString(testMillis);
if (testClass != null) {
pw.append("<br>").append("Test class Name: ").append(testClass);
// this line to add end time in ms
pw.append("<br>").append("End Time(ms): ").append(testMillisString);
// Test name
String testName = tr.getTestName();
if (testName != null) {
pw.append(" (").append(testName).append(")");
}
然后你会得到如下
现在,您将获得两个报告,一个是默认报告,另一个报告是您的文件名。 现在唯一剩下的就是关闭默认的报告监听器,因此您只能获得一个报告。为此,您可以关注this,也可以搜索解决方案。希望这有帮助