如何在控制台上打印异常?我正在使用 TestNG 和 Maven

How to print exceptions on console? I am using TestNG and Maven

我想在控制台上查看异常。我将 TestNG 与 Maven 一起用作构建工具。我已经在 Maven surefire 插件中定义了我的 testng.xml。

如果您使用任何类型的日志记录框架,您应该坚持使用它。 否则,您始终可以使用 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html#printStackTrace()(和兄弟姐妹)打印异常,例如

...
} catch (Exception e) {
    e.printStackTrace(System.out);
    e.printStackTRace(System.err);
}
...

https://www.javadoc.io/doc/org.testng/testng/latest/org/testng/reporters/VerboseReporter.html

你应该使用上面的 reporter ,但是构造函数需要一个字符串所以你不能使用 testng.xml ( 如果有人知道如何在 testng.xml 请务必在此处添加 )

因此解决方法是通过脚本添加侦听器并通过 java 入口文件启动 testng。

public static void main(String[] args) {


        TestNG testng = new TestNG();

        // Create a list of String
        List<String> suitefiles = new ArrayList<String>();

        // Add xml file which you have to execute
        suitefiles.add(prop.getProperty("path_to_your_existing_testngxml\testng.xml"));

        // now set xml file for execution
        testng.setTestSuites(suitefiles);
        
        testng.addListener(new VerboseReporter("[TestNG] "));

        // finally execute the runner using run method
        testng.run();

}

输出:

备注

由于此报告器构造函数需要一个字符串,因此您不应在 testng.xml 中提供它,您将遇到初始化错误