首页 > 解决方案 > 如何在 junit 测试的 xml 报告中添加属性?

问题描述

我想在 junit 测试生成的 xml 报告中添加一些属性,以便为我的测试添加可追溯性

这就是我想要的:

class MyTest{
    @Test
    @AddAttribute("key","value")
    fun myTest()
    {

    }
}

然后将这对 ("key","value") 添加到我的 report.xml 中,例如:

<?xml version='1.0' encoding='UTF-8' ?>
<testsuite name="MyTests" tests="1" failures="0" errors="0" skipped="0" time="20.846" timestamp="2020-07-07T15:07:57" hostname="localhost">
  <properties>
    <property name="project" value="app" />
  </properties>
  <testcase name="MyTest" classname="MyTest" time="12.912" key="value" />
</testsuite>

有任何想法吗 ?

标签: androidxmlkotlintestingjunit

解决方案


似乎没有可用的解决方案来解决这个问题。但是,如果您遵循此答案:,您至少可以将您的作品捕获到-output.txt文件中的控制台。

我们以下面的测试为例:

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class TestReportingTest {

  @Test
  public void testOutput() {
    System.out.println("Key One: Value");
    System.out.println("Key Two: 1,2,3,4,5");
    assertEquals(4, 2 + 2);
  }
}

并将您的 Surefire 插件配置如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>3.0.0-M5</version>
  <configuration>
    <redirectTestOutputToFile>true</redirectTestOutputToFile>
  </configuration>
</plugin>

执行后mvn test,你会得到一个包含以下内容的your.package.TestName-output.txt文件:target/surefire-reports

Key One: Value
Key Two: 1,2,3,4,5

您可能希望以一种以后可以轻松解析/访问它们的方式格式化您的控制台日志。

这应该适用于 JUnit 4 和 JUnit 5,并且与 Surefire 插件相关,而不是测试框架。如果您使用 Gradle 作为构建系统,您可以在此处找到正确的配置。


推荐阅读