[r325]: / 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пп	
ґ{зп-_