gpt4 book ai didi

java - 使用 JavaDoc 丰富 JUnit 测试报告

转载 作者:IT老高 更新时间:2023-10-28 20:54:06 26 4
gpt4 key购买 nike

对于客户,我们需要为集成测试生成详细的测试报告,这些报告不仅表明一切都是绿色的,而且还表明测试做了什么。我和我的同事都很懒惰,我们不想破解电子表格或文本文档。

为此,我想了一种方法来记录更复杂的集成测试,并在每个 @Test 注释方法和每个测试类上使用 JavaDoc 注释。对于测试人员来说,了解哪个需求、Jira 票证或与测试相关的任何内容以及测试实际尝试做什么是很有帮助的。我们也想将这些信息提供给我们的客户。

现在最大的问题是:我们如何将每个方法和每个测试类的 JavaDoc 放入 JUnit 报告中?我们使用 JUnit 4.9 和 Maven。

我知道,每个 assertXXX() 都有一个描述,但我们确实需要一个漂亮的 HTML 列表作为结果或一个 PDF 文档,其中列出了所有类和文档以及所有 @Test 方法及其描述,测试时间,结果,如果失败,原因。

或者是否有另一种方法来生成精美的测试脚本? (或者我们应该为此启动一个开源项目!?;-))

更新:我问了另一个关于如何将 RunListener 添加到 Eclipse 以使其在 Eclipse 中启动时也报告的问题。具有自定义 TestRunner 的建议解决方案是获得测试结果报告的另一种可能性。看看:How can I use a JUnit RunListener in Eclipse?

最佳答案

实现此目的的一种方法是使用自定义 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 生成您想要的文件,其中包含特定于该测试的文本、测试是通过还是失败、或被忽略、花费的时间等。这将是您的自定义报告。

然后,在万无一失的情况下,您可以指定一个自定义监听器,使用:

<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 Plugin, Using JUnit, Using custom listeners and reporters

这种解决方案的缺点是在回车、格式化方面没有 javadoc 的灵 active ,但它的优点是文档在一个特定的位置,即注释 TestDoc。

关于java - 使用 JavaDoc 丰富 JUnit 测试报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8084773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com