|
From: lacton <la...@us...> - 2008-03-24 21:29:42
|
Update of /cvsroot/shunit/ShUnit In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv14481 Modified Files: shUnit shUnitAcceptanceTest Added Files: OneSuccessfulTest shuXmlFormatter Log Message: [add] First test to add XML output capability. Right now, it's only a fake implementation. Extracted all display logic in functions shuSuiteStart, shuTestStart, shuTestFailure... to override them when choosing XML output. --- NEW FILE: OneSuccessfulTest --- #! /usr/bin/env sh SuccessfulTest() { shuAssert 'Always true' 0 } Suite() { shuRegTest SuccessfulTest; } . "$SHUNIT_HOME/shUnit" shuStart Suite Index: shUnitAcceptanceTest =================================================================== RCS file: /cvsroot/shunit/ShUnit/shUnitAcceptanceTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** shUnitAcceptanceTest 24 Mar 2008 17:20:16 -0000 1.2 --- shUnitAcceptanceTest 24 Mar 2008 21:29:38 -0000 1.3 *************** *** 20,23 **** --- 20,24 ---- shuRegTest Test127FailingTests shuRegTest TestShuStartWith2Arguments + shuRegTest TestXmlOutputWithOneSuccessfulTest } *************** *** 146,153 **** test "" = "$stdout" ! shuAssert "Standard output should be empty" $? test "shuStart: invalid number of arguments -- 2" = "$stderr" ! shuAssert "Error message" $? done } --- 147,173 ---- test "" = "$stdout" ! shuAssert "Standard output should be empty for $shell" $? test "shuStart: invalid number of arguments -- 2" = "$stderr" ! shuAssert "Error message for $shell" $? ! done ! } ! ! TestXmlOutputWithOneSuccessfulTest() { ! for shell in $available_shells ! do ! $shell shuXmlFormatter ./OneSuccessfulTest ! expectedXml="<?xml version=\"1.0\" ?> ! <testsuite errors=\"0\" failures=\"0\" hostname=\"`hostname`\" name=\"OneSuccessfulTest\" tests=\"1\"> ! <testcase classname=\"OneSuccessfulTest\" name=\"SuccessfulTest\" /> ! <system-out><![CDATA[]]></system-out> ! <system-err><![CDATA[]]></system-err> ! </testsuite>" ! [ -f TEST-OneSuccessfulTest.xml ] ! shuAssert "XML file created" $? ! actualXml=`cat TEST-OneSuccessfulTest.xml` ! [ "$expectedXml" = "$actualXml" ] ! shuAssert "XML contents as expected" $? ! rm -f TEST-OneSuccessfulTest.xml done } --- NEW FILE: shuXmlFormatter --- #! /usr/bin/env sh formatter="$0" testScript="$1" shuSuiteStart() { suiteName="`basename $testScript`" exec > TEST-$suiteName.xml echo "<?xml version=\"1.0\" ?>" echo "<testsuite errors=\"0\" failures=\"0\" hostname=\"`hostname`\" name=\"$suiteName\" tests=\"1\">" echo " <testcase classname=\"OneSuccessfulTest\" name=\"SuccessfulTest\" />" echo " <system-out><![CDATA[]]></system-out>" echo " <system-err><![CDATA[]]></system-err>" echo "</testsuite>" echo } shuTestStart() { testIndex=$1 testName=$2 } shuTestFailure() { : } shuTestSuccess() { : } shuTestEnd() { : } shuSuiteEnd() { : } . "$testScript" Index: shUnit =================================================================== RCS file: /cvsroot/shunit/ShUnit/shUnit,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** shUnit 24 Mar 2008 17:20:15 -0000 1.25 --- shUnit 24 Mar 2008 21:29:38 -0000 1.26 *************** *** 85,90 **** fi - printf "\n****** `basename ${0}` ******\n" - SHU_TOTAL_NR_OF_TESTS=`echo ${SHU_STR_ALL_TESTS} | wc -w | sed -e 's/ *//'` --- 85,88 ---- *************** *** 95,100 **** fi ! shuFmtNbrTests "${SHU_TOTAL_NR_OF_TESTS}" ! printf "%s to run:\n" "$shuRetFmtNbrTests" SHU_TOTAL_NR_SUCCEEDED=0 --- 93,97 ---- fi ! shuSuiteStart SHU_TOTAL_NR_SUCCEEDED=0 *************** *** 104,110 **** SHU_STR_FAILED="" shuTestNbr=`expr ${shuTestNbr} + 1` ! printf " Test %i: %s " ${shuTestNbr} "${STR_TEST}" shuRunOneTest ${STR_TEST} ! printf "\n" if test -n "${SHU_STR_FAILED}" --- 101,107 ---- SHU_STR_FAILED="" shuTestNbr=`expr ${shuTestNbr} + 1` ! shuTestStart ${shuTestNbr} "${STR_TEST}" shuRunOneTest ${STR_TEST} ! shuTestEnd if test -n "${SHU_STR_FAILED}" *************** *** 123,135 **** done - shuFmtNbrTests "${shuTestNbr}" - printf "\n%s run.\n" "${shuRetFmtNbrTests}" - - shuFmtNbrTests "${SHU_TOTAL_NR_SUCCEEDED}" - printf " %s succeeded.\n" "${shuRetFmtNbrTests}" - shuFailedTestCount=`expr ${shuTestNbr} - ${SHU_TOTAL_NR_SUCCEEDED}` ! shuFmtNbrTests $shuFailedTestCount ! printf " %s failed.\n\n" "${shuRetFmtNbrTests}" if [ $shuFailedTestCount -lt $SHU_ERROR_EXIT_CODE ] --- 120,125 ---- done shuFailedTestCount=`expr ${shuTestNbr} - ${SHU_TOTAL_NR_SUCCEEDED}` ! shuSuiteEnd if [ $shuFailedTestCount -lt $SHU_ERROR_EXIT_CODE ] *************** *** 158,165 **** if [ ${boolResult} -ne ${SHU_TRUE} ] then ! printf "E" ! shuRegisterFailedTest "${strMessage}" else ! printf "." fi } --- 148,154 ---- if [ ${boolResult} -ne ${SHU_TRUE} ] then ! shuTestFailure "${strMessage}" else ! shuTestSuccess fi } *************** *** 171,181 **** if [ ${boolResult} -eq ${SHU_TRUE} ] then ! printf "E" ! shuRegisterFailedTest "${strMessage}" else ! printf "." fi } # Global Variables SHU_TRUE=0 --- 160,225 ---- if [ ${boolResult} -eq ${SHU_TRUE} ] then ! shuTestFailure "${strMessage}" else ! shuTestSuccess fi } + if ! type shuSuiteStart >/dev/null 2>&1 + then + shuSuiteStart() { + printf "\n****** `basename ${0}` ******\n" + shuFmtNbrTests "${SHU_TOTAL_NR_OF_TESTS}" + printf "%s to run:\n" "$shuRetFmtNbrTests" + } + fi + + if ! type shuTestStart >/dev/null 2>&1 + then + shuTestStart() { + testIndex=$1 + testName=$2 + printf " Test %i: %s " ${testIndex} "${testName}" + } + fi + + if ! type shuTestFailure >/dev/null 2>&1 + then + shuTestFailure() { + failureMessage="$1" + printf "E" + shuRegisterFailedTest "$failureMessage" + } + fi + + if ! type shuTestSuccess >/dev/null 2>&1 + then + shuTestSuccess() { + printf "." + } + fi + + if ! type shuTestEnd >/dev/null 2>&1 + then + shuTestEnd() { + printf "\n" + } + fi + + if ! type shuSuiteEnd >/dev/null 2>&1 + then + shuSuiteEnd() { + shuFmtNbrTests "${shuTestNbr}" + printf "\n%s run.\n" "${shuRetFmtNbrTests}" + + shuFmtNbrTests "${SHU_TOTAL_NR_SUCCEEDED}" + printf " %s succeeded.\n" "${shuRetFmtNbrTests}" + + shuFmtNbrTests $shuFailedTestCount + printf " %s failed.\n\n" "${shuRetFmtNbrTests}" + } + fi + + # Global Variables SHU_TRUE=0 |