我正在尝试使用maven surefire插件为TestNG使用自定义报告器。我已经有了一个自定义监听器,这似乎得到了解决。但是,看起来根本不使用自定义报告器:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<properties>
<property>
<name>listener</name>
<value>com.mystuff.test.TestNGListener</value>
</property>
<property>
<name>reporter</name>
<value>com.mystuff.test.MyEmailableReporter</value>
</property>
</properties>
</configuration>
</plugin>
知道为什么会这样吗?
答案 0 :(得分:4)
我想出来了。看起来以下根本不起作用:
<property>
<name>reporter</name>
<value>com.mystuff.test.MyEmailableReporter</value>
</property>
尽管有相反的文件。在TestNG
类中,似乎有一个名为TestNG#addListener(IReporter listener)
的方法,与其名称相反,接受实现IReporter
的报告。 Maven Surefire(v2.12.1)调用此方法来添加侦听器和报告。但是,它不会在名为reporter
的属性下查找报告。相反,您必须将自定义报告者添加到listener
属性:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<properties>
<property>
<name>listener</name>
<value>com.mystuff.test.TestNGListener,com.mystuff.test.MyEmailableReporter</value>
</property>
</properties>
</configuration>
</plugin>
不太直观。