[r356]: / trunk / Library / POUs / FB_JUnitXmlPublisher / LogTestSuiteResults / svnobj  Maximize  Restore  History

Download this file

99 lines (99 with data), 11.5 kB

Gx_lñ,!0…jüo#ü5e9	L<âySystem.StringL{f8a58466-d7f6-439f-bbb8-d4600e41d099}ImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocumentL{f3878285-8e4f-490b-bb1b-9acbb7eb04db}TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}	Id
longTagText
pCfUnitTestResults REF=TestResults.GetTestSuiteResults();¦// Only publish once if "EnablePublish" is enabled and all test results are stored.ÔPublishTrigger(CLK := (TestResults.GetAreTestResultsAvailable() AND GVL_Param_XmlControl.EnablePublish) );0IF PublishTrigger.Q THEN          `    (* <?xml version="1.0" encoding="UTF-8"?> *)     Xml.writeDocumentHeader(Header := '<?xml version="1.0" encoding="UTF-8"?>');    ,    (* <testsuites> *):    xml.NewTag('testsuites');J    Xml.NewParameter('disabled', '');¸    Xml.NewParameter('failures', UINT_TO_STRING(CfUnitTestResults.NumberOfFailedTestCases));º    Xml.NewParameter('tests', UINT_TO_STRING(CfUnitTestResults.NumberOfSuccessfulTestCases));    FOR CurSuiteNr := 1 TO CfUnitTestResults.NumberOfTestSuites BY 1 DO 2        (* <testsuite> *)@        xml.NewTag('testsuite');Ð        Xml.NewParameter('id', UINT_TO_STRING(CfUnitTestResults.TestSuiteResults[CurSuiteNr].Identity));¬        Xml.NewParameter('name', CfUnitTestResults.TestSuiteResults[CurSuiteNr].name); ð        Xml.NewParameter('tests', UINT_TO_STRING(CfUnitTestResults.TestSuiteResults[CurSuiteNr].NumberOfTests));        !ò        Xml.NewParameter('failures', UINT_TO_STRING(CfUnitTestResults.TestSuiteResults[CurSuiteNr].NumberOfFailedTests));"           #Æ        FOR CurTestCnt := 1 TO CfUnitTestResults.TestSuiteResults[CurSuiteNr].NumberOfTests BY 1 DO$8            (* <testcase> *)%F            Xml.NewTag('testcase');&ô            Xml.NewParameter('name', CfUnitTestResults.TestSuiteResults[CurSuiteNr].TestCaseResults[CurTestCnt].TestName);'ˆ            Xml.NewParameter('classname', CfUnitTestResults.TestSuiteResults[CurSuiteNr].TestCaseResults[CurTestCnt].TestClassName);(            )Ö            IF CfUnitTestResults.TestSuiteResults[CurSuiteNr].TestCaseResults[CurTestCnt].TestIsFailed THEN*z                Xml.NewParameter('status', TEST_STATUS_FAIL);+ä            ELSIF CfUnitTestResults.TestSuiteResults[CurSuiteNr].TestCaseResults[CurTestCnt].TestIsSkipped THEN   ,z                Xml.NewParameter('status', TEST_STATUS_SKIP);-             ELSE.z                Xml.NewParameter('status', TEST_STATUS_PASS);/			END_IF0f            (* determine testcase fail or succes *)1š            IF CfUnitTestResults.TestSuiteResults[CurSuiteNr].TestCaseResults[CurTestCnt].FailureType <> E_AssertionType.Type_UNDEFINED THEN 2F                (* in case of fail 3†                    <failure message="Values differ" type="BYTE" />4$                *)5L                Xml.NewTag('failure');6                Xml.NewParameter('message', CfUnitTestResults.TestSuiteResults[CurSuiteNr].TestCaseResults[CurTestCnt].FailureMessage );7Ä                Xml.NewParameter('type', F_AssertionTypeToString(CfUnitTestResults.TestSuiteResults[CurSuiteNr].TestCaseResults[CurTestCnt].FailureType) );       8L                (* close failure tag*)9>                Xml.CloseTag();:                 ;F            (* In case of succes *)<>            Xml.NewTagData('');=$            END_IF>X            (* close testcase tag*)         ?6            Xml.CloseTag();@        END_FORAB        (* close testsuite tag *)B.        Xml.CloseTag();C        D    END_FOR    E4    (* Close testsuites *)F&    Xml.CloseTag();GN    (* Open, save and close the file *)H*    OpenWriteClose();IF    (* clear the internal buffer *)J,    Xml.ClearBuffer();Kš    WRITE_DEVICE_LOG(msgCtrlMask := UDINT_TO_DWORD(CmpLog.LogClass.LOG_INFO),LN                     msgFmtStr := '%s',M                      strArg := '| ==========EXPORTING XML RESULTS==========='); Nj                     msgFmtStr :=  '| Location: %s ',O|                     strArg := GVL_Param_XmlControl.FilePath);Pš    WRITE_DEVICE_LOG(MsgCtrlMask := UDINT_TO_DWORD(CmpLog.LogClass.LOG_INFO),QN                     MsgFmtStr := '%s',R”                     StrArg := '| ===================================='); SEND_IFTInterfaceUL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}V(*W°    This method is responsible for the entire generation of the testresults.xml output. Xf    The output of the xml writer is NOT beautified.Y*)ZBMETHOD PUBLIC LogTestSuiteResults[VAR\r    CfUnitTestResults : REFERENCE TO ST_TestSuiteResults;]*    CurSuiteNr: UINT;^,    CurTestCnt : UINT;_END_VAR`VAR CONSTANTaP    TEST_STATUS_SKIP : STRING := 'SKIP';bP    TEST_STATUS_PASS : STRING := 'PASS';cP    TEST_STATUS_FAIL : STRING := 'FAIL';ÐÐÐERÐÐ	
­mÚÐ-
ÐÐ	
­nÚÐ-ÐÐ	
­(ÚÐ-ÐÐ	
­)ÚÐ-ÐÐ	
­*ÚÐ-ÐÐ	
­+ÚÐ-ÐÐ	
­,ÚÐ-ÐÐ	
­-ÚÐ-ÐÐ	
­oÚÐ-ÐÐ	
­/ÚÐ-ÐÐ	
­0ÚÐ-ÐÐ	
­„ÚÐ-ÐÐ	
­1ÚÐ-ÐÐ	
­2ÚÐ-ÐÐ	
­3ÚÐ-ÐÐ	
­4ÚÐ-ÐÐ	
­5ÚÐ-ÐÐ	
­6ÚÐ-ÐÐ	
­†ÚÐ-ÐÐ	
­‡ÚÐ-ÐÐ	
­ˆÚÐ- ÐÐ	
­7ÚÐ-!ÐÐ	
­8ÚÐ-"ÐÐ	
­<ÚÐ-#ÐÐ	
­=ÚÐ-$ÐÐ	
­>ÚÐ-%ÐÐ	
­@ÚÐ-&ÐÐ	
­qÚÐ-'ÐÐ	
­tÚÐ-(ÐÐ	
­ƒÚÐ-)ÐÐ	
­yÚÐ-*ÐÐ	
­uÚÐ-+ÐÐ	
­€ÚÐ-,ÐÐ	
­ÚÐ--ÐÐ	
­‚ÚÐ-.ÐÐ	
­vÚÐ-/ÐÐ	
­AÚÐ-ÐÐ	
­BÚÐ-0ÐÐ	
­CÚÐ-1ÐÐ	
­DÚÐ-2ÐÐ	
­ŒÚÐ-3ÐÐ	
­‹ÚÐ-4ÐÐ	
­EÚÐ-5ÐÐ	
­ÚÐ-6ÐÐ	
­FÚÐ-7ÐÐ	
­HÚÐ-8ÐÐ	
­IÚÐ-9ÐÐ	
­ŽÚÐ-:ÐÐ	
­JÚÐ--ÐÐ	
­KÚÐ-;ÐÐ	
­LÚÐ-<ÐÐ	
­MÚÐ-(ÐÐ	
­NÚÐ-=ÐÐ	
­OÚÐ->ÐÐ	
­PÚÐ-?ÐÐ	
­QÚÐ-(ÐÐ	
­RÚÐ-@ÐÐ	
­SÚÐ-AÐÐ	
­UÚÐ-BÐÐ	
­VÚÐ-CÐÐ	
­WÚÐ-DÐÐ	
­XÚÐ-EÐÐ	
­YÚÐ-FÐÐ	
­ZÚÐ-ÐÐ	
­[ÚÐ-GÐÐ	
­\ÚÐ-HÐÐ	
­]ÚÐ-ÐÐ	
­^ÚÐ-IÐÐ	
­_ÚÐ-JÐÐ	
­`ÚÐ-ÐÐ	
­aÚÐ-KÐÐ	
­bÚÐ-LÐÐ	
­cÚÐ-MÐÐ	
­dÚÐ-ÐÐ	
­eÚÐ-KÐÐ	
­fÚÐ-NÐÐ	
­gÚÐ-OÐÐ	
­hÚÐ-ÐÐ	
­iÚÐ-PÐÐ	
­jÚÐ-QÐÐ	
­kÚÐ-RÐÐ	
­\ÚÐ-SÐTUÐEÐÐ	
­ÖÚÐ-VÐÐ	
­×ÚÐ-WÐÐ	
­ØÚÐ-XÐÐ	
­ÙÚÐ-YÐÐ	
­ÚÚÐ-ZÐÐ	
­ÞÚÐ-[ÐÐ	
­lÚÐ-\ÐÐ	
­àÚÐ-]ÐÐ	
­áÚÐ-^ÐÐ	
­FÚÐ-_ÐÐ	
­|ÚÐ-`ÐÐ	
­}ÚÐ-aÐÐ	
­~ÚÐ-bÐÐ	
­ÚÐ-cÐÐ	
­{ÚÐ-_