如何从命令行获取testng失败消息

mcg*_*er5 0 java testng

我是testng的新手.我想从命令行运行它时看到Expected和Actual消息.当我从IDE运行它时,它可以工作:

java.lang.AssertionError:预期:3实际:2

当我从命令行运行它时使用:

java org.testng.TestNG -testclass SimpleTest
Run Code Online (Sandbox Code Playgroud)

我明白了:

命令行套件总测试运行:2,失败:2,跳过:0

(没有消息)当我将测试包装在try ... catch块中时,它看起来像:

try{
   int x = 3;
   Assert.assertEquals(2,x);
} catch (AssertionError ae){
   System.out.println(ae.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

然后我得到了我的信息.

expected:<3> but was:<2>
Run Code Online (Sandbox Code Playgroud)

这似乎不是编写测试代码的简洁方法.你会怎么做?

Aug*_*sto 7

TestNG不提供此OOB.默认情况下,它以html格式生成报告.

如果要在控制台上编写报告,则需要编写海关TestListenerAdapter.

在TestNG 日志记录文档中有一个如何做类似事情的小例子.您可以使用相同的示例,并覆盖onTestFailure(),读取测试结果,并从中获取异常消息ITestResult.getThrowable().