From 227583a1c75dcde64635a686bdce5e531cdf7083 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 25 Apr 2016 10:57:46 +0000
Subject: [PATCH] SSDM-3505: creating targets/test-results/TEST-integration.xml

SVN: 36277
---
 integration-tests/test.py | 31 ++++++++++++++++++++++++++-----
 1 file changed, 26 insertions(+), 5 deletions(-)

diff --git a/integration-tests/test.py b/integration-tests/test.py
index 6944478f372..0cb885da1a9 100755
--- a/integration-tests/test.py
+++ b/integration-tests/test.py
@@ -11,7 +11,9 @@ import time
 import settings
 from systemtest.util import printAndFlush, renderDuration
 
-startTime = time.time() 
+startTime = time.time()
+testCases = [] 
+failedTestCases = {}
 numberOfTestCases = 0
 numberOfFailedTestCases = 0
 for f in sorted(os.listdir(os.path.dirname(os.path.abspath(__file__)))):
@@ -20,18 +22,37 @@ for f in sorted(os.listdir(os.path.dirname(os.path.abspath(__file__)))):
         moduleName = splittedFileName[0]
         fileType = splittedFileName[1]
         if moduleName.startswith('test_') and fileType == 'py':
-            numberOfTestCases += 1
+            testCases.append(moduleName)
             try:
                 __import__(moduleName)
             except:
-                numberOfFailedTestCases += 1
+                failedTestCases[moduleName] = sys.exc_info()
+renderedStartTime = time.strftime('%Y-%m-%dT%H:%M:%S', time.localtime(startTime))
+renderedDuration = renderDuration(time.time() - startTime)
+testResultsFolder = 'targets/test-results'
+if not os.path.exists(testResultsFolder):
+    os.mkdir(testResultsFolder)
+with open('targets/test-results/TEST-integration.xml', 'w') as out:
+    out.write('<?xml version="1.1" encoding="UTF-8"?>\n') 
+    out.write("<testsuite name='integration' tests='%s' failures='%s' errors='0' timestamp='%s' time='%s'>\n"
+              % (len(testCases), len(failedTestCases), renderedStartTime, renderedDuration))
+    for testCase in testCases:
+        if testCase in failedTestCases:
+            out.write("  <testcase name='%s'>\n" % testCase)
+            out.write("    <failure>\n")
+            out.write("      %s\n" % failedTestCases[testCase][1])
+            out.write("    </failure>\n")
+            out.write("  </testcase>\n")
+        else:
+            out.write("  <testcase name='%s'/>\n" % testCase)
+    out.write("</testsuite>\n") 
 printAndFlush('=====================================')
-printAndFlush("%d test cases executed in %s" % (numberOfTestCases, renderDuration(time.time() - startTime)))
+printAndFlush("%d test cases executed in %s" % (len(testCases), renderedDuration))
 if numberOfFailedTestCases == 0:
     printAndFlush("no test case failed")
     exit(0)
 if numberOfFailedTestCases == 1:
     printAndFlush("1 test case failed")
 else:
-    printAndFlush("%d test cases failed" % numberOfFailedTestCases)
+    printAndFlush("%d test cases failed" % len(failedTestCases))
 exit(1)
-- 
GitLab