[r386]: / trunk / Library / POUs / FB_xUnitXmlPublisher / LogTestSuiteResults / svnobj  Maximize  Restore  History

Download this file

102 lines (102 with data), 12.1 kB

Gx_l/!0…jüo~%ÝïŠ2i	lž—ýSystem.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
lUnitTestResults REF=TestResults.GetTestSuiteResults();Ò// Only publish once if "GVL_Param_TcUnit.xUnitEnablePublish" is enabled and all test results are stored.ÔPublishTrigger(CLK := (TestResults.GetAreTestResultsAvailable() AND GVL_Param_CfUnit.xUnitEnablePublish));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(UnitTestResults.NumberOfFailedTestCases));¶    Xml.NewParameter('tests', UINT_TO_STRING(UnitTestResults.NumberOfSuccessfulTestCases));œ    FOR CurrentSuiteNumber := 1 TO UnitTestResults.NumberOfTestSuites BY 1 DO 2        (* <testsuite> *)@        Xml.NewTag('testsuite');Ü        Xml.NewParameter('id', UINT_TO_STRING(UnitTestResults.TestSuiteResults[CurrentSuiteNumber].Identity));¸        Xml.NewParameter('name', UnitTestResults.TestSuiteResults[CurrentSuiteNumber].name);ü        Xml.NewParameter('tests', UINT_TO_STRING(UnitTestResults.TestSuiteResults[CurrentSuiteNumber].NumberOfTests));        þ        Xml.NewParameter('failures', UINT_TO_STRING(UnitTestResults.TestSuiteResults[CurrentSuiteNumber].NumberOfFailedTests)); Þ        FOR CurrentTestCount := 1 TO UnitTestResults.TestSuiteResults[CurrentSuiteNumber].NumberOfTests BY 1 DO!8            (* <testcase> *)"F            Xml.NewTag('testcase');#Œ            Xml.NewParameter('name', UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].TestName);$             Xml.NewParameter('classname', UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].TestClassName);%î            IF UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].TestIsFailed THEN&z                Xml.NewParameter('status', TEST_STATUS_FAIL);'ü            ELSIF UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].TestIsSkipped THEN   (z                Xml.NewParameter('status', TEST_STATUS_SKIP);)             ELSE*z                Xml.NewParameter('status', TEST_STATUS_PASS);+$            END_IF,h            (* Determine testcase fail or success *)-²            IF UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureType <> E_AssertionType.Type_UNDEFINED THEN .F                (* In case of fail /†                    <failure message="Values differ" type="BYTE" />0$                *)1L                Xml.NewTag('failure');2¦                Xml.NewParameter('message', UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureMessage);3Ú                Xml.NewParameter('type', F_AssertionTypeToString(UnitTestResults.TestSuiteResults[CurrentSuiteNumber].TestCaseResults[CurrentTestCount].FailureType));       4N                (* Close failure tag *)5>                Xml.CloseTag();6H            (* In case of success *)7>            Xml.NewTagData('');8X            (* Close testcase tag*)         96            Xml.CloseTag();:        END_FOR;B        (* Close testsuite tag *)<.        Xml.CloseTag();=    END_FOR>4    (* Close testsuites *)?&    Xml.CloseTag();@^    (* Delete, open, save and close the file *)A6    DeleteOpenWriteClose();BF    (* Clear the internal buffer *)C,    Xml.ClearBuffer();D*    (* Inform user *)Eœ    WRITE_DEVICE_LOG(MsgCtrlMask := UDINT_TO_DWORD(CmpLog.LogClass.LOG_ERROR),FN                     msgFmtStr := '%s',Gž                     strArg := '| ==========TEST RESULTS EXPORTED===========');H²                                                                                         IŒ                     msgFmtStr :=  '| Location: %s ',                 J–                     strArg := GVL_Param_CfUnit.xUnitFilePath);            KŒ                     MsgFmtStr := '%s',                               L–                     StrArg := '| ======================================');MEND_IFNInterfaceOL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}P(*Qš    This method is responsible for the entire generation of the output file. Rf    The output of the xml writer is NOT beautified.S    T‚    When new data is available, feel free to add it to the reportU*)VBMETHOD PUBLIC LogTestSuiteResultsWVARXn    UnitTestResults : REFERENCE TO ST_TestSuiteResults;Y<    CurrentSuiteNumber : UINT;Z8    CurrentTestCount : UINT;[END_VAR\VAR CONSTANT]P    TEST_STATUS_SKIP : STRING := 'SKIP';^P    TEST_STATUS_PASS : STRING := 'PASS';_P    TEST_STATUS_FAIL : STRING := 'FAIL';ÐÐÐERÐÐ	
­ÚÐ-
ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­	ÚÐ-ÐÐ	
­
ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­
ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ- ÐÐ	
­ÚÐ-!ÐÐ	
­ÚÐ-"ÐÐ	
­ÚÐ-#ÐÐ	
­ÚÐ-$ÐÐ	
­ÚÐ-ÐÐ	
­ ÚÐ-%ÐÐ	
­!ÚÐ-&ÐÐ	
­"ÚÐ-'ÐÐ	
­#ÚÐ-(ÐÐ	
­$ÚÐ-)ÐÐ	
­%ÚÐ-*ÐÐ	
­&ÚÐ-+ÐÐ	
­'ÚÐ-ÐÐ	
­(ÚÐ-,ÐÐ	
­)ÚÐ--ÐÐ	
­*ÚÐ-.ÐÐ	
­+ÚÐ-/ÐÐ	
­,ÚÐ-0ÐÐ	
­-ÚÐ-1ÐÐ	
­.ÚÐ-2ÐÐ	
­/ÚÐ-3ÐÐ	
­0ÚÐ-4ÐÐ	
­1ÚÐ-5ÐÐ	
­2ÚÐ-)ÐÐ	
­3ÚÐ-6ÐÐ	
­4ÚÐ-7ÐÐ	
­5ÚÐ-ÐÐ	
­6ÚÐ-+ÐÐ	
­7ÚÐ-8ÐÐ	
­8ÚÐ-9ÐÐ	
­9ÚÐ-ÐÐ	
­:ÚÐ-:ÐÐ	
­;ÚÐ-;ÐÐ	
­<ÚÐ-<ÐÐ	
­=ÚÐ-ÐÐ	
­>ÚÐ-=ÐÐ	
­?ÚÐ->ÐÐ	
­@ÚÐ-?ÐÐ	
­AÚÐ-ÐÐ	
­BÚÐ-@ÐÐ	
­CÚÐ-AÐÐ	
­DÚÐ-ÐÐ	
­EÚÐ-BÐÐ	
­FÚÐ-CÐÐ	
­GÚÐ-ÐÐ	
­HÚÐ-DÐÐ	
­IÚÐ-EÐÐ	
­JÚÐ-FÐÐ	
­KÚÐ-GÐÐ	
­LÚÐ-HÐÐ	
­MÚÐ-EÐÐ	
­NÚÐ-IÐÐ	
­OÚÐ-JÐÐ	
­PÚÐ-ÐÐ	
­QÚÐ-EÐÐ	
­RÚÐ-KÐÐ	
­SÚÐ-LÐÐ	
­ÚÐ-MÐNOÐEÐÐ	
­TÚÐ-PÐÐ	
­UÚÐ-QÐÐ	
­VÚÐ-RÐÐ	
­WÚÐ-SÐÐ	
­XÚÐ-TÐÐ	
­YÚÐ-UÐÐ	
­ZÚÐ-VÐÐ	
­[ÚÐ-WÐÐ	
­\ÚÐ-XÐÐ	
­]ÚÐ-YÐÐ	
­^ÚÐ-ZÐÐ	
­_ÚÐ-[ÐÐ	
­`ÚÐ-\ÐÐ	
­aÚÐ-]ÐÐ	
­bÚÐ-^ÐÐ	
­cÚÐ-_ÐÐ	
­ÚÐ-[