有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

@DataProvider的java Maven+TestNG打印参数

问题很简单,但我在任何地方都找不到它(谷歌搜索),我想运行mvn test,并在控制台输出中看到下一个文本“PASSED: theNameOfMyTest("A String Attribute")”,生成此示例的代码如下所示:

import static org.testng.Assert.assertTrue;

public class TestClass {

    @DataProvider(name = "provider")
    public static Object[][] provider() {
        return new Object[][] {{"A String Attribute"}};
    }

    @Test(dataProvioder="provider")
    public void theNameOfMyTest(final String parameter) {
        assertTrue(true);
    }

}

共 (1) 个答案

  1. # 1 楼答案

    您可以使用自己的Listener来显示预期的信息。然后,配置surefire以使用它:https://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html

    public class MyTestListener extends TestListenerAdapter {
    
      @Override
      public void onTestFailure(ITestResult tr) {
        log("FAIL: ", tr);
      }
    
      @Override
      public void onTestSkipped(ITestResult tr) {
        log("SKIPPED: ", tr);
      }
    
      @Override
      public void onTestSuccess(ITestResult tr) {
        log("PASSED: ", tr);
      }
    
      private static void log(String prefix, ITestResult tr) {
        System.out.println(prefix + tr.getName() + "(" + Arrays.asList(tr.getParameters()) + ")");
      }
    }
    

    在你的pom.xml中:

    [...]
    <plugins>
        [...]
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <properties>
                <property>
                  <name>listener</name>
                  <value>MyTestListener</value>
                </property>
              </properties>
            </configuration>
          </plugin>
        [...]
    </plugins>
    [...]