[r378]: / trunk / Library / POUs / FB_TestResults / svnobj  Maximize  Restore  History

Download this file

38 lines (36 with data), 14.6 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    StoringTestSuiteResultNumber : UINT(1..GVL_Param_CfUnit.MaxNumberOfTestSuites);
    StoringTestSuiteTrigger : R_TRIG;
    StoredTestSuiteResults : BOOL;
    StoredGeneralTestResults : BOOL;
END_VAR
VAR_TEMP
    TestSuiteName : T_MaxString;
    TestName : T_MaxString;
    GeneralTestResultsTestSuitesCounter : UINT(1..GVL_Param_CfUnit.MaxNumberOfTestSuites);
(* The body of the function block stores the test results *)
    StoringTestSuiteTrigger(CLK := GVL_CfUnit.TestSuiteAddresses[StoringTestSuiteResultNumber]^.AreAllTestsFinished());
    IF StoringTestSuiteTrigger.Q THEN
        TestSuiteName := F_RemoveInstancePathAndProjectNameFromTestInstancePath(TestInstancePath := GVL_CfUnit.TestSuiteAddresses[StoringTestSuiteResultNumber]^.GetInstancePath());
        (* Store test suite name and ID *)
        TestSuiteResults.TestSuiteResults[StoringTestSuiteResultNumber].Identity := StoringTestSuiteResultNumber - 1;
        (* Store number of tests in test suite *)
            GVL_CfUnit.TestSuiteAddresses[StoringTestSuiteResultNumber]^.GetNumberOfTests();
        (* Store number of failed tests in test suite *)
            GVL_CfUnit.TestSuiteAddresses[StoringTestSuiteResultNumber]^.GetNumberOfFailedTests();
        (* Iterate and print all tests in test suite *)
            TestToBeStored := GVL_CfUnit.TestSuiteAddresses[StoringTestSuiteResultNumber]^.GetTestByPosition(TestsInTestSuiteCounter);
            (* Store test name *)
            TestSuiteResults.TestSuiteResults[StoringTestSuiteResultNumber].TestCaseResults[TestsInTestSuiteCounter].TestClassName :=
            TestSuiteResults.TestSuiteResults[StoringTestSuiteResultNumber].TestCaseResults[TestsInTestSuiteCounter].TestIsFailed :=
                TestToBeStored.IsFailed();
            (* Store whether the test was skipped *)
            TestSuiteResults.TestSuiteResults[StoringTestSuiteResultNumber].TestCaseResults[TestsInTestSuiteCounter].FailureMessage :=
                TestToBeStored.GetAssertionMessage();
           
            (* Store the (first failed) assertion type *)
        IF StoringTestSuiteResultNumber = GVL_CfUnit.NumberOfInitializedTestSuites THEN
            StoredTestSuiteResults := TRUE;
        ELSE
(* If all test suites have finished storing their results, store the general test results *)
IF StoredTestSuiteResults AND NOT StoredGeneralTestResults THEN
//IF StoringTestSuiteResultNumber = GVL_CfUnit.NumberOfInitializedTestSuites AND
    TestSuiteResults.NumberOfTestSuites := GVL_CfUnit.NumberOfInitializedTestSuites;