testNG 套件标记时间戳与 testng-results.xml 中的测试方法时间戳不同
testNG suite tag timestamp differs with test-method timestamp in testng-results.xml
我正在生成一个 Excel 报告来捕获套件执行的开始时间和结束时间,其中框架从 testng-results.xml 读取数据,但是,我注意到套件级别和方法级别的开始时间和完成时间。我的框架在套件级别读取时间,但时间不是我期望的。我希望套件时间与方法级时间相同。
<suite name="Suite" duration-ms="1543927" started-at="2018-03-15T05:53:39Z" finished-at="2018-03-15T06:19:23Z">
<groups>
</groups>
<test name="Regression_test" duration-ms="1543927" started-at="2018-03-15T05:53:39Z" finished-at="2018-03-15T06:19:23Z">
<class name="com.mpos.android.tests.CnC_TC_08">
<test-method status="PASS" signature="_init()[pri:0, instance:com.mpos.android.tests.CnC_TC_08@627551fb]" name="_init" is-config="true" duration-ms="2" started-at="2018-03-15T11:31:27Z" finished-at="2018-03-15T11:31:27Z">
<reporter-output>
</reporter-output>
</test-method> <!-- _init -->
这是使用上述代码片段生成的 Excel 报告:
<suite>
标签和 <test-method>
标签 timestamp started-at
属性 说明了一切。
<suite>
标签中的 started-at
timeatamp 提到 2018-03-15T05:53:39Z
<test-method>
标签中的 started-at
timeatamp 提到 2018-03-15T11:31:27Z
- 所以时差5小时37分48秒
分析
这表示:
<suite>
标签中提到 2018-03-15T05:53:39Z 的 started-at
timeatamp 是 GMT
<test-method>
标签中提到 2018-03-15T11:31:27Z 的 started-at
timeatamp 是(可能) IST(印度标准时间)
解决方案
一个快速的解决方案是将您的 TestNG 版本升级到最新的 GA v6.14.2,其中 时间戳 其中两个时间戳都是 GMT.
当前执行的一个例子如下:
<testng-results skipped="0" failed="0" ignored="0" total="1" passed="1">
<reporter-output>
</reporter-output>
<suite name="Default suite" duration-ms="13267" started-at="2018-03-17T10:50:04Z" finished-at="2018-03-17T10:50:17Z">
<groups>
</groups>
<test name="Default test" duration-ms="13267" started-at="2018-03-17T10:50:04Z" finished-at="2018-03-17T10:50:17Z">
<class name="Config_property_demo.Index">
<test-method status="PASS" signature="handling_multiple_windows()[pri:1, instance:Config_property_demo.Index@2bbf4b8b]" name="handling_multiple_windows" duration-ms="13236" started-at="2018-03-17T10:50:04Z" finished-at="2018-03-17T10:50:17Z">
<reporter-output>
</reporter-output>
</test-method> <!-- handling_multiple_windows -->
</class> <!-- Config_property_demo.Index -->
</test> <!-- Default test -->
</suite> <!-- Default suite -->
</testng-results>
虽然我的系统 timestamp (apprx) 在 2018-03-17T16:50:04Z 但 <suite>
标签和 <test-method>
标签都显示 2018-03-17T10:50:04Z
我正在生成一个 Excel 报告来捕获套件执行的开始时间和结束时间,其中框架从 testng-results.xml 读取数据,但是,我注意到套件级别和方法级别的开始时间和完成时间。我的框架在套件级别读取时间,但时间不是我期望的。我希望套件时间与方法级时间相同。
<suite name="Suite" duration-ms="1543927" started-at="2018-03-15T05:53:39Z" finished-at="2018-03-15T06:19:23Z">
<groups>
</groups>
<test name="Regression_test" duration-ms="1543927" started-at="2018-03-15T05:53:39Z" finished-at="2018-03-15T06:19:23Z">
<class name="com.mpos.android.tests.CnC_TC_08">
<test-method status="PASS" signature="_init()[pri:0, instance:com.mpos.android.tests.CnC_TC_08@627551fb]" name="_init" is-config="true" duration-ms="2" started-at="2018-03-15T11:31:27Z" finished-at="2018-03-15T11:31:27Z">
<reporter-output>
</reporter-output>
</test-method> <!-- _init -->
这是使用上述代码片段生成的 Excel 报告:
<suite>
标签和 <test-method>
标签 timestamp started-at
属性 说明了一切。
<suite>
标签中的started-at
timeatamp 提到 2018-03-15T05:53:39Z<test-method>
标签中的started-at
timeatamp 提到 2018-03-15T11:31:27Z- 所以时差5小时37分48秒
分析
这表示:
<suite>
标签中提到 2018-03-15T05:53:39Z 的started-at
timeatamp 是 GMT<test-method>
标签中提到 2018-03-15T11:31:27Z 的started-at
timeatamp 是(可能) IST(印度标准时间)
解决方案
一个快速的解决方案是将您的 TestNG 版本升级到最新的 GA v6.14.2,其中 时间戳 其中两个时间戳都是 GMT.
当前执行的一个例子如下:
<testng-results skipped="0" failed="0" ignored="0" total="1" passed="1"> <reporter-output> </reporter-output> <suite name="Default suite" duration-ms="13267" started-at="2018-03-17T10:50:04Z" finished-at="2018-03-17T10:50:17Z"> <groups> </groups> <test name="Default test" duration-ms="13267" started-at="2018-03-17T10:50:04Z" finished-at="2018-03-17T10:50:17Z"> <class name="Config_property_demo.Index"> <test-method status="PASS" signature="handling_multiple_windows()[pri:1, instance:Config_property_demo.Index@2bbf4b8b]" name="handling_multiple_windows" duration-ms="13236" started-at="2018-03-17T10:50:04Z" finished-at="2018-03-17T10:50:17Z"> <reporter-output> </reporter-output> </test-method> <!-- handling_multiple_windows --> </class> <!-- Config_property_demo.Index --> </test> <!-- Default test --> </suite> <!-- Default suite --> </testng-results>
虽然我的系统 timestamp (apprx) 在 2018-03-17T16:50:04Z 但
<suite>
标签和<test-method>
标签都显示 2018-03-17T10:50:04Z