如何使TestNG打印有关失败的详细信息

如何使TestNG打印有关失败的详细信息,testng,Testng,我的testNG失败,显示简单消息: [TestNG] [ERROR] Cannot instantiate class com.xyz.AbcTest 但是我不知道为什么它不能实例化这个类。在这种情况下,如何让TestNG打印出详细信息或错误堆栈?假设您使用maven surefire插件执行TestNG测试。为了在控制台上启用完整堆栈跟踪,我们需要设置为false trimStackTrace:是将报告中的堆栈跟踪修剪为仅测试中的行,还是显示完整跟踪。 默认值为:true。 用户属性为:t

我的testNG失败,显示简单消息:

[TestNG] [ERROR]
Cannot instantiate class com.xyz.AbcTest

但是我不知道为什么它不能实例化这个类。在这种情况下,如何让TestNG打印出详细信息或错误堆栈?

假设您使用maven surefire插件执行TestNG测试。为了在控制台上启用完整堆栈跟踪,我们需要设置为false

trimStackTrace:是将报告中的堆栈跟踪修剪为仅测试中的行,还是显示完整跟踪。 默认值为:true。 用户属性为:trimStackTrace*

   <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M5</version>
        <configuration>
            <trimStackTrace>false</trimStackTrace>
            <suiteXmlFiles>
                <suiteXmlFile>testng.xml</suiteXmlFile>
            </suiteXmlFiles>
        </configuration>

    </plugin>

org.apache.maven.plugins
maven surefire插件
3.0.0-M5
假的
testng.xml
通过maven项目的上述设置,您应该能够看到完整的堆栈跟踪

下面是带有trimStackTrace的远程控制台输出:

对于:trimStackTrace:true

[ERROR] com.interfaces.TestClass.testing[Edge, org.testng.TestRunner@28467629](2)  Time elapsed: 0.008 s  <<< FAILURE!
java.lang.NullPointerException
        at com.interfaces.TestClass.testing(TestClass.java:32)

[ERROR] com.interfaces.TestClass.testing[Chrome, org.testng.TestRunner@28467629](2)  Time elapsed: 0.009 s  <<< FAILURE!
java.lang.NullPointerException
        at com.interfaces.TestClass.testing(TestClass.java:32)

[INFO]

---------------------------------------------------
[ERROR] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.477 s <<< FAILURE! - in TestSuite
[ERROR] com.interfaces.TestClass.testing[Edge, org.testng.TestRunner@2dc7f489](2)  Time elapsed: 0.014 s  <<< FAILURE!
java.lang.NullPointerException
        at com.interfaces.TestClass.testing(TestClass.java:32)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
        at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:599)
        at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:174)
        at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:77)
        at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:15)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)

[ERROR]com.interfaces.TestClass.testing[Edge,org.testng。TestRunner@28467629](2) 经过的时间:0.008 sHi您可以通过使用src/main/resources中的log4testng.properties文件来启用testng记录器


在testng xml文件中也使用verbose=“10”。

testng版本和控制台中的任何堆栈跟踪?这里看一看可能会提供一些信息,如果你是通过IDE运行,它一定打印了stacktrace。此外,启用报告器输出和testng报告还应显示完整的堆栈跟踪。@RahulL-testng版本:6.x-中没有堆栈跟踪console@MrunalGosar如果我在IDE中运行它是的,我可以看到堆栈跟踪。但我需要在远程控制台上看到。如何启用报告器输出?@GelinLuo因此,如果您能够在IDE中查看stacktrace,那么应该可以告诉您为什么它无法实例化您的测试。您还可以发布它无法实例化的类以及IDE中的完整stacktrace