在空手道中,surefire XML 报告创建了一个接一个的附加和合并所有示例的测试步骤,在下一个测试中执行
in Karate the surefire XML report created appends and merges test steps for all examples one after another in next test executed
我运行以下场景示例:
Scenario Outline: Basic test for user <userID>
When url 'xyz'
And path 'abc/efg'
And params id = <userID>
When method get
Then status 200
Example:
|userID|
|1|
|2|
|3|
|4|
注意:我将示例中的 userID 传递给 场景名称 以及参数
现在执行此操作后,surefire 中为上述测试生成的 xml 报告如下所示:
<testSuite failures="0"
name="xyz.feature"
tests="4"
time="8.5">
<testcase classname="xyz"
name="Basic test for user 1"
time="1.20"
<system-out>
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '1'...............passed
When method get...................passed
Then status 200...................passed
</system-out>
</testcase>
<testcase classname="xyz"
name="Basic test for user 2"
time="2.10"
<system-out>
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '1'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '2'...............passed
When method get...................passed
Then status 200...................passed
</system-out>
</testcase>
<testcase classname="xyz"
name="Basic test for user 3"
time="3.21"
<system-out>
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '1'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '2'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '3'...............passed
When method get...................passed
Then status 200...................passed
</system-out>
</testcase>
<testcase classname="xyz"
name="Basic test for user 4"
time="3.56"
<system-out>
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '1'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '2'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '3'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '4'...............passed
When method get...................passed
Then status 200...................passed
</system-out>
</testcase>
请查看用户 ID 为 1 的第一个测试用例如何打印 4 个步骤作为通过,这是正确的。现在对于第二个测试用例,第一个测试用例的步骤附加到第二个测试用例的步骤。对于 testcase1 和 testcase2 的第三个测试用例步骤与 testcase3 一起显示 steps.This 在 CI 管道中创建一个问题。理想情况下,在 xml 报告中,所有 tescase 应该只有 4 个步骤,但事实并非如此。
想检查这里可能出现的问题。
我正在使用并行运行器作为:
https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/DemoTestParallel.java
Logback 文件为:https://github.com/intuit/karate/blob/master/examples/jobserver/src/test/java/logback-test.xml
如果需要更多详细信息,请告诉我。
很可能是一个错误。大多数团队使用 Cucumber JSON 输出来生成 HTML 报告。同样在 0.9.6 之后,空手道有 built-in HTML 报告:https://twitter.com/KarateDSL/status/1237797240686522369
请按照这些说明提交问题,保持简单:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue
我运行以下场景示例:
Scenario Outline: Basic test for user <userID>
When url 'xyz'
And path 'abc/efg'
And params id = <userID>
When method get
Then status 200
Example:
|userID|
|1|
|2|
|3|
|4|
注意:我将示例中的 userID 传递给 场景名称 以及参数 现在执行此操作后,surefire 中为上述测试生成的 xml 报告如下所示:
<testSuite failures="0"
name="xyz.feature"
tests="4"
time="8.5">
<testcase classname="xyz"
name="Basic test for user 1"
time="1.20"
<system-out>
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '1'...............passed
When method get...................passed
Then status 200...................passed
</system-out>
</testcase>
<testcase classname="xyz"
name="Basic test for user 2"
time="2.10"
<system-out>
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '1'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '2'...............passed
When method get...................passed
Then status 200...................passed
</system-out>
</testcase>
<testcase classname="xyz"
name="Basic test for user 3"
time="3.21"
<system-out>
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '1'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '2'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '3'...............passed
When method get...................passed
Then status 200...................passed
</system-out>
</testcase>
<testcase classname="xyz"
name="Basic test for user 4"
time="3.56"
<system-out>
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '1'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '2'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '3'...............passed
When method get...................passed
Then status 200...................passed
When url 'xyz' ...................passed
And path 'abc/efg'................passed
And params id = '4'...............passed
When method get...................passed
Then status 200...................passed
</system-out>
</testcase>
请查看用户 ID 为 1 的第一个测试用例如何打印 4 个步骤作为通过,这是正确的。现在对于第二个测试用例,第一个测试用例的步骤附加到第二个测试用例的步骤。对于 testcase1 和 testcase2 的第三个测试用例步骤与 testcase3 一起显示 steps.This 在 CI 管道中创建一个问题。理想情况下,在 xml 报告中,所有 tescase 应该只有 4 个步骤,但事实并非如此。
想检查这里可能出现的问题。 我正在使用并行运行器作为: https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/DemoTestParallel.java
Logback 文件为:https://github.com/intuit/karate/blob/master/examples/jobserver/src/test/java/logback-test.xml
如果需要更多详细信息,请告诉我。
很可能是一个错误。大多数团队使用 Cucumber JSON 输出来生成 HTML 报告。同样在 0.9.6 之后,空手道有 built-in HTML 报告:https://twitter.com/KarateDSL/status/1237797240686522369
请按照这些说明提交问题,保持简单:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue