Empty Ant report for SoapUI testrunn

2019-07-27 06:19发布

问题:

I am running a SoapUI project using Ant to get a JUnit report.

Here is my build.xml:

<project basedir="." default="testreport" name="APIAutomation">
<target name="SoapUI">
    <exec dir="." executable="C:\Program Files (x86)\SmartBear\SoapUI-5.0.0\bin\testrunner.bat">
        <arg line="-r -j -a -f 'C:\Users\F3020722\Desktop\Notification\New folder' -sFirstLoginTest 'C:\Users\F3020722\Desktop\Notification\New folder\APIRegression.xml'"></arg>
    </exec>
</target>
<target name="testreport" depends="SoapUI">
    <junitreport todir="C:\Users\F3020722\Desktop\Notification\New folder\API">
        <fileset dir="C:\Users\F3020722\Desktop\Notification\New folder\API">
            <include name="TEST-*.xml"/>
        </fileset>
        <report format="frames"
            todir="C:\Users\F3020722\Desktop\Notification\New folder\reports\html">
        </report>
    </junitreport>
</target>
</project>

I am getting an XML report properly. However, the JUnit report is empty. all contains 0 and successrate is Nan.

Can anyone check the build.xml is correct?

回答1:

  • Looks build script seems ok
  • Avoid spaces in the directory names
  • Use forward slashes like unix style even on windows
  • Use property file or properties in build script so that other members do not have it edit the build scripts as paths might change machine to machine.
  • For now, added properties in the below script, you may externalize to a property file too.

build.xml

<project basedir="." default="testreport" name="APIAutomation">
   <property name="test.suite" value="FirstLoginTest"/>
   <property name="soapui.project" value="C:/Users/F3020722/Desktop/Notification/New folder/APIRegression.xml"/>
   <property name="soapui.home" value="C:/Program Files (x86)/SmartBear/SoapUI-5.0.0"/>
   <property name="results.dir" value="C:/Users/F3020722/Desktop/Notification/API/Results"/>
   <property name="reports.dir" value="${results.dir}/Reports"/>
   <property name="html.dir" value="${reports.dir}/html"/>
   <target name="execute.project">
     <exec dir="${soapui.home}/bin" executable="testrunner.bat">
        <arg line="-raj -f ${results.dir} -s ${test.suite} ${soapui.project}" />
     </exec>
  </target>
   <target name="testreport" depends="execute.project">
        <mkdir dir="${reports.dir}"/>
            <junitreport todir="${reports.dir}">
                <fileset dir="${results.dir}">
                    <include name="TEST-*.xml"/>
                </fileset>
                <report format="frames" todir="${html.dir}" />
            </junitreport>
   </target>
</project>

You can also find a docker image for soapui and run tests & generate junit style html report as well. Refer soapui repository @ hub.docker.com

Note: that build script used docker images is exactly the same as above except the machine path.