Report Format for Publishing JUnit Results
We just added publishing of JUnit test results to our RTC project. I don't think I've got the right format because I'm seeing a duplication of results for failed tests. Would someone be kind enough to post an example of an Ant task that generates the correct format? (I saw one post to this forum that mentions the RTC example for project setup and the build.xml it generates -- but you have to be a Jazz Admin to run it!)
Here's what we were using prior to publishing the results -- and still are:
<target name="runJunitTests">
<junit fork="yes" printsummary="no" haltonerror="no" haltonfailure="no">
<batchtest fork="yes" todir="${junitTestDir}">
<fileset dir="${binClassDir}">
<include name="**/junit/*Test.class"/>
</fileset>
</batchtest>
<formatter type="xml"/>
<classpath>
<path refid="classpath"/>
<pathelement path="${binClassDir}"/>
</classpath>
</junit>
<junitreport todir="${junitTestDir}">
<fileset dir="${junitTestDir}">
<include name="TEST-*.xml"/>
</fileset>
<report todir="${junitTestDir}"/>
</junitreport>
</target>
Thanks,
Chris
Here's what we were using prior to publishing the results -- and still are:
<target name="runJunitTests">
<junit fork="yes" printsummary="no" haltonerror="no" haltonfailure="no">
<batchtest fork="yes" todir="${junitTestDir}">
<fileset dir="${binClassDir}">
<include name="**/junit/*Test.class"/>
</fileset>
</batchtest>
<formatter type="xml"/>
<classpath>
<path refid="classpath"/>
<pathelement path="${binClassDir}"/>
</classpath>
</junit>
<junitreport todir="${junitTestDir}">
<fileset dir="${junitTestDir}">
<include name="TEST-*.xml"/>
</fileset>
<report todir="${junitTestDir}"/>
</junitreport>
</target>
Thanks,
Chris
One answer
Hi Chris,
I would suggest to set up a small RTC test system on your machine. That allows you to run the examples and would not interfere with your production sytem.
Here is the output I see from a test build:
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite errors="0" failures="0" hostname="IBM-Q5E580IOFCJ" name="com.jke.junit.AllTests" tests="46" time="6.988" timestamp="2012-07-11T06:47:03">
<properties>
.
.
.
<property name="..." value="true" />
</properties>
<testcase classname="com.jke.junit.OrganizationFinderJUnit" name="testAddSubclassInstancesBad" time="0.016" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testAccountLogic" time="2.371" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testAccountTypesArray" time="0.468" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testGetAccountNumber" time="0.312" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testGetUserAccountTypes" time="0.406" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testDetermineAcct" time="0.296" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testGetAccount" time="0.421" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testGetUserAccounts" time="0.266" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountBeanSerializer" time="0.015" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionBeanSerializer" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testUserBeanSerializer" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testUserBeanUserName" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testUserBeanFirstName" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testUserBeanLastName" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionBeanID" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionBeanType" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionBeanAccountNumber" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionSource" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionAmount" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionDate" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testContributionAccountNumber" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testContributionOrganization" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testContributionPercentage" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testContributionDate" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountBalance" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountDividends" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountDividendsETD" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountContributions" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountContributionsETD" time="0.016" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountAccountNumber" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountUsername" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountType" time="0.0" />
<testcase classname="com.jke.junit.DBJunit" name="testCreateLoadUsers" time="0.405" />
<testcase classname="com.jke.junit.DBJunit" name="testCreateLoadAccountBean" time="0.25" />
<testcase classname="com.jke.junit.DBJunit" name="testCreateLoadTransactionBeans" time="0.39" />
<testcase classname="com.jke.junit.DBJunit" name="testLogin" time="0.25" />
<testcase classname="com.jke.junit.OrganizationLogicJUnit" name="testIsValidOrganization" time="0.015" />
<testcase classname="com.jke.junit.OrganizationLogicJUnit" name="testNamesAsArray" time="0.0" />
<testcase classname="com.jke.junit.OrganizationLogicJUnit" name="testAsMap" time="0.0" />
<testcase classname="com.jke.junit.TransactionLogicJUnit" name="testGetTransactionHistory" time="0.406" />
<testcase classname="com.jke.junit.TransactionLogicJUnit" name="testGetProposedContributionTransaction" time="0.249" />
<testcase classname="com.jke.junit.TransactionLogicJUnit" name="testPerformContribution" time="0.39" />
<testcase classname="com.jke.junit.TestSalvationArmy" name="testOrganization" time="0.0" />
<testcase classname="com.jke.junit.TestRedCross" name="testOrganization" time="0.0" />
<testcase classname="com.jke.junit.TestCare" name="testOrganization" time="0.0" />
<testcase classname="com.jke.junit.TestAmericanCancerSociety" name="testOrganization" time="0.0" />
<system-out><![CDATA[......deleted.....]]></system-out>
<system-err><![CDATA[]]></system-err>
</testsuite>
I would suggest to set up a small RTC test system on your machine. That allows you to run the examples and would not interfere with your production sytem.
Here is the output I see from a test build:
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite errors="0" failures="0" hostname="IBM-Q5E580IOFCJ" name="com.jke.junit.AllTests" tests="46" time="6.988" timestamp="2012-07-11T06:47:03">
<properties>
.
.
.
<property name="..." value="true" />
</properties>
<testcase classname="com.jke.junit.OrganizationFinderJUnit" name="testAddSubclassInstancesBad" time="0.016" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testAccountLogic" time="2.371" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testAccountTypesArray" time="0.468" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testGetAccountNumber" time="0.312" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testGetUserAccountTypes" time="0.406" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testDetermineAcct" time="0.296" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testGetAccount" time="0.421" />
<testcase classname="com.jke.junit.AccountLogicJUnit" name="testGetUserAccounts" time="0.266" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountBeanSerializer" time="0.015" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionBeanSerializer" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testUserBeanSerializer" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testUserBeanUserName" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testUserBeanFirstName" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testUserBeanLastName" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionBeanID" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionBeanType" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionBeanAccountNumber" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionSource" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionAmount" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testTransactionDate" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testContributionAccountNumber" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testContributionOrganization" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testContributionPercentage" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testContributionDate" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountBalance" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountDividends" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountDividendsETD" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountContributions" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountContributionsETD" time="0.016" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountAccountNumber" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountUsername" time="0.0" />
<testcase classname="com.jke.junit.BeanModelJUnit" name="testAccountType" time="0.0" />
<testcase classname="com.jke.junit.DBJunit" name="testCreateLoadUsers" time="0.405" />
<testcase classname="com.jke.junit.DBJunit" name="testCreateLoadAccountBean" time="0.25" />
<testcase classname="com.jke.junit.DBJunit" name="testCreateLoadTransactionBeans" time="0.39" />
<testcase classname="com.jke.junit.DBJunit" name="testLogin" time="0.25" />
<testcase classname="com.jke.junit.OrganizationLogicJUnit" name="testIsValidOrganization" time="0.015" />
<testcase classname="com.jke.junit.OrganizationLogicJUnit" name="testNamesAsArray" time="0.0" />
<testcase classname="com.jke.junit.OrganizationLogicJUnit" name="testAsMap" time="0.0" />
<testcase classname="com.jke.junit.TransactionLogicJUnit" name="testGetTransactionHistory" time="0.406" />
<testcase classname="com.jke.junit.TransactionLogicJUnit" name="testGetProposedContributionTransaction" time="0.249" />
<testcase classname="com.jke.junit.TransactionLogicJUnit" name="testPerformContribution" time="0.39" />
<testcase classname="com.jke.junit.TestSalvationArmy" name="testOrganization" time="0.0" />
<testcase classname="com.jke.junit.TestRedCross" name="testOrganization" time="0.0" />
<testcase classname="com.jke.junit.TestCare" name="testOrganization" time="0.0" />
<testcase classname="com.jke.junit.TestAmericanCancerSociety" name="testOrganization" time="0.0" />
<system-out><![CDATA[......deleted.....]]></system-out>
<system-err><![CDATA[]]></system-err>
</testsuite>