Alright, we actually found the issue from the JUnit report that Cucumber generated by default. As we can see from the doc here the XML as following:
<?xml version="1.0" encoding="UTF-8"?>
<testsuite failures="0" errors="0" skipped="2" tests="2" time="0.05" name="Pending step">
<testcase classname="Pending step" name="Pending" time="0.05">
<skipped/>
<system-out/>
<system-err/>
</testcase>
<testcase classname="Pending step" name="Undefined" time="0.05">
<skipped/>
<system-out/>
<system-err/>
</testcase>
<system-out>
<![CDATA[]]>
</system-out>
<system-err>
<![CDATA[]]>
</system-err>
</testsuite>
Using the validator that I mention in the previous comment. We found that some of the tags causing this issue on the circle-ci such as <![CDATA[]]>
, <system-out/>
, etc.
So we created custom JUnit that makes CircleCI happy about and it works. For the reference of how the XML format should be, please see this StackOverflow threads something like this:
<testsuites>
<testsuite>
<properties>
<property> ... </property>
</properties>
<testcase> ... </testcase>
</testsuite>
</testsuites>
Hope this can be helpful for those have similar issue like us.