实现此目标的一种方法是使用自定义RunListener,但要注意的是,使用批注而不是javadoc会更容易。您将需要具有一个自定义注释,例如:
@TestDoc(text="tests for XXX-342, fixes customer issue blahblah")@Testpublic 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中,您可以使用以下命令指定自定义侦听器:
<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>
这是来自MavenSurefire插件,使用JUnit,使用自定义侦听器和报告器
这种解决方案的缺点是,就格式返回而言,就回车而言您没有javadoc的灵活性,但是它的优点是文档位于一个特定的位置,即注释TestDoc。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)