实现这一点的一种方法是使用自定义的RunListener,但需要注意的是,使用注释而不是javadoc会更容易。您需要有一个自定义注释,例如:
@TestDoc(text="tests for XXX-342, fixes customer issue blahblah")
@Test
public void testForReallyBigThings() {
// stuff
}
RunListener
监听测试事件,如测试开始、测试结束、测试失败、测试成功等。
public class RunListener {
public void testRunStarted(Description description) throws Exception {}
public void testRunFinished(Result result) throws Exception {}
public void testStarted(Description description) throws Exception {}
public void testFinished(Description description) throws Exception {}
public void testFailure(Failure failure) throws Exception {}
public void testAssumptionFailure(Failure failure) {}
public void testIgnored(Description description) throws Exception {}
}
描述包含应用于测试方法的注释列表,因此使用上面的示例,您可以使用以下命令获取注释 TestDoc:
description.getAnnotation(TestDoc.class);
并像往常一样提取文本。
然后,您可以使用 来生成所需的文件,其中包含特定于此测试的文本,测试是否通过或失败,或者被忽略,所花费的时间等。这将是您的自定义报告。RunListener
然后,在 surefire 中,您可以使用以下命令指定自定义侦听器:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<properties>
<property>
<name>listener</name>
<value>com.mycompany.MyResultListener,com.mycompany.MyResultListener2</value>
</property>
</configuration>
</plugin>
这是来自Maven Surefire插件,使用JUnit,使用自定义侦听器和报告器
这个解决方案的缺点是,就回车符而言,你没有javadoc的灵活性,格式化,但它的优点是文档位于一个特定的地方,即注释TestDoc。