当前位置: 首页 > 面试题库 >

使用JavaDoc丰富JUnit测试报告

章安宜
2023-03-14
问题内容

对于客户,我们需要为集成测试生成详细的测试报告,该报告不仅显示所有内容都是绿色的,而且还显示测试的结果。我的同事和我都是懒惰的人,我们不想破坏电子表格或文本文档。

为此,我想到了一种在每个@Test带注释的方法和每个测试类上使用JavaDoc注释记录更复杂的集成测试的方法。对于测试人员来说,查看哪个要求,Jira票证或测试所链接的内容以及测试实际尝试执行的操作是一个很好的帮助。我们也希望将此信息提供给我们的客户。

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

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

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

更新:
我问了另一个问题,关于如何向Eclipse中添加RunListener以使其在Eclipse中启动时也能在Eclipse中报告。带有自定义TestRunner的建议解决方案是获得测试结果报告的另一种可能性。


问题答案:

实现此目标的一种方法是使用自定义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中,您可以使用以下命令指定自定义侦听器:

<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。



 类似资料:
  • 要表现色彩里的浓烈、富足感可藉由组合一个有力的色彩和它暗下来的补色。例如,深白兰地酒红色就是在红色中加了黑色,就像产自法国葡萄园里陈年纯美的葡萄酒,象征财富。白兰地酒红色和深森林绿如果和金色一起使用可表现富裕。这些深色、华丽的色彩用在各式各样的织料上,如皮革和波纹皱丝等等,可创造出戏剧性、难以忘怀的效果。这些色彩会给人一种财富和地位的感觉。 补色色彩组合 原色色彩组合 单色色彩组合 49 3 49

  • 我的build.gradle是这样配置的: 下面是一个简单的测试: 当我执行测试时,我在控制台中看到了这一点: 但测试报告中没有任何内容: 我做错了什么?如何将JUnit 5结果集成到测试报告窗口中? 我正在使用Intellij 2016.2

  • 昨天,我编写并运行了一个Katalon测试套件,今天,我试图将Katalon与Jenkins集成。我成功地安装了Jenkins,根据这些说明为Katalon测试创建了一个新的工作,但是当我开始构建它时,我得到了失败的构建。 特别是,这是我不断收到的错误消息: 我继续将文件夹结构从我指定的项目目录复制到Jenkins工作区。经过后来的检查,我发现,当Jenkins运行Katalon测试时,文件实际上

  • 我有Maven Java项目的JUnit XML报告,而不是源文件。我希望Sonarqube 4.5.7通过执行以下命令来发布这些报告:“mvn sonar:sonar”。 Sonarqube安装在远程服务器上,安装了java-plugin-3.8和其他插件。 我所有的JUnitXML报告都在一个名为“reports”的目录中。 pom。项目根目录上的xml如下所示: 当我执行“mvn声纳:声纳”

  • 我试图使用spring和mockito对rest控制器进行单元测试。这是我的主控制器方法。 这是我的JUnit测试: 在输出响应中,测试失败,因为它得到404错误,但它预期成功代码为200。我相信我已经正确设置了独立配置,我会做错什么。为什么URI没有正确映射到方法?请注意,对于来自应用程序前端的相同URI,它工作正常。以下是我使用Postman工具为chrome测试的正确200响应的完整URI:

  • ...还有一个很简单的测试... 如果我在IntelliJ中运行这个,测试就会运行并失败。 如果我提交这个项目并将其推送到github,TeamCity会看到变化并开始构建。生成会很快失败,出现以下错误: