1

我想知道是否有任何方法可以自定义超时异常错误消息。

我的测试是通过使用 DataProvider 进行参数化的,因此我想在错误消息中包含有关参数的信息,以便了解哪些特定场景失败了。

错误信息

Method org.testng.internal.TestNGMethod.testEndpoint() didn't finish within the time-out 8000

堆栈跟踪

org.testng.internal.thread.ThreadTimeoutException: Method     
org.testng.internal.TestNGMethod.testEndpoint() didn't finish within the time-out 8000
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:150)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
    at sun.security.ssl.InputRecord.read(InputRecord.java:480)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884)
    at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:633)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:579)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1322)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
4

2 回答 2

0

您可以通过实现接口ITestListener并在 onTestFailure() 中使用getThrowable( ) 获取异常来创建侦听器类

String stackTraceString =      Throwables.getStackTraceAsString(getCurrentTestResult().getThrowable());

以同样的方式,您应该能够 setThrowable() 修改错误短信(没有检查我自己)。

于 2013-12-07T01:44:52.377 回答
0

您可以从 TestResult 对象中获取数据提供者参数。按照 Vlad 的建议,实现 ITestListener 接口。

在 onTestFailure 中,使用 result.getParameters 获取参数并使用 getThrowable 获取异常。使用您的自定义消息创建一个新的 Throwable,附加您的参数并可能附加现有的消息(它有一个构造函数),然后使用 result.setThrowable 将此 Throwable 设置为结果对象。

于 2013-12-09T15:06:00.027 回答