小编典典
实现此目标的一种方法是使用自定义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 {}
}
Description包含应用于测试方法的注释列表,因此使用上面的示例,您可以使用以下方法获取Annotation
TestDoc:
description.getAnnotation(TestDoc.class);
并正常提取文本。
然后,您可以使用RunListener生成所需的文件,以及该测试的专用文本,测试是通过还是失败,是否被忽略,花费的时间等。这将是您的自定义报告。
然后,在surefire中,您可以使用以下命令指定自定义侦听器:
org.apache.maven.plugins
maven-surefire-plugin
2.10
listener
com.mycompany.MyResultListener,com.mycompany.MyResultListener2
这种解决方案的缺点是,就格式返回而言,就回车而言您没有javadoc的灵活性,但是它的优点是文档位于一个特定的位置,即注释TestDoc。
2020-09-28