Merge pull request #1957 from NativeScript/test-results

test-results xml improved
This commit is contained in:
Vladimir Enchev
2016-04-13 17:01:43 +04:00

View File

@@ -110,12 +110,13 @@ var testsWithLongDelay = {
testLoadInvalidUrl: 10000 testLoadInvalidUrl: 10000
} }
var duration; var startTime;
var running = false; var running = false;
var testsQueue = new Array<TestInfo>(); var testsQueue = new Array<TestInfo>();
function printRunTestStats() { function printRunTestStats() {
let testFileContent = new Array<string>(); let testFileContent = new Array<string>();
let testCases = new Array<string>();
var j; var j;
var failedTestCount = 0; var failedTestCount = 0;
@@ -124,11 +125,10 @@ function printRunTestStats() {
let allTests = testsQueue.filter(t=> t.isTest); let allTests = testsQueue.filter(t=> t.isTest);
testFileContent.push("<testsuites>"); testFileContent.push("<testsuites>");
testFileContent.push(`<testsuite name="NativeScript Tests" timestamp="${new Date()}" hostname="hostname" time="0" errors="0" tests="${allTests.length}" skipped="0" failures="${failedTestCount}">`);
for (j = 0; j < allTests.length; j++) { for (j = 0; j < allTests.length; j++) {
let testName = allTests[j].testName; let testName = allTests[j].testName;
let duration = Math.round(allTests[j].duration / 1000); let duration = (allTests[j].duration / 1000).toFixed(2);
if (!allTests[j].isPassed) { if (!allTests[j].isPassed) {
failedTestCount++; failedTestCount++;
@@ -137,15 +137,20 @@ function printRunTestStats() {
failedTestInfo.push(allTests[j].testName + " FAILED: " + allTests[j].errorMessage); failedTestInfo.push(allTests[j].testName + " FAILED: " + allTests[j].errorMessage);
testFileContent.push(`<testcase classname="${platform.device.os}" name="${testName}" time="${duration}"><failure type="exceptions.AssertionError"><![CDATA[${errorMessage}]]></failure></testcase>`); testCases.push(`<testcase classname="${platform.device.os}" name="${testName}" time="${duration}"><failure type="exceptions.AssertionError"><![CDATA[${errorMessage}]]></failure></testcase>`);
} else { } else {
testFileContent.push(`<testcase classname="${platform.device.os}" name="${testName}" time="${duration}"></testcase>`); testCases.push(`<testcase classname="${platform.device.os}" name="${testName}" time="${duration}"></testcase>`);
} }
} }
var totalTime = (TKUnit.time() - startTime).toFixed(2);
let finalMessage = `=== ALL TESTS COMPLETE for ${Math.round(TKUnit.time() - duration)} ms === \n${(allTests.length - failedTestCount)} OK, ${failedTestCount} failed\n`; testFileContent.push(`<testsuite name="NativeScript Tests" timestamp="${new Date()}" hostname="hostname" time="${totalTime}" errors="0" tests="${allTests.length}" skipped="0" failures="${failedTestCount}">`);
testFileContent = testFileContent.concat(testCases);
let finalMessage = `=== ALL TESTS COMPLETE for ${totalTime} ms === \n${(allTests.length - failedTestCount)} OK, ${failedTestCount} failed\n`;
TKUnit.write(finalMessage, messageType.info); TKUnit.write(finalMessage, messageType.info);
for (j = 0; j < failedTestInfo.length; j++) { for (j = 0; j < failedTestInfo.length; j++) {
let failureMessage = failedTestInfo[j]; let failureMessage = failedTestInfo[j];
@@ -211,7 +216,7 @@ export var runAll = function (testSelector?: string) {
var totalSuccess = 0; var totalSuccess = 0;
var totalFailed: Array<TKUnit.TestFailure> = []; var totalFailed: Array<TKUnit.TestFailure> = [];
testsQueue.push(new TestInfo(() => { running = true; duration = TKUnit.time(); })); testsQueue.push(new TestInfo(() => { running = true; startTime = TKUnit.time(); }));
for (var name in allTests) { for (var name in allTests) {
if (singleModuleName && (singleModuleName !== name.toLowerCase())) { if (singleModuleName && (singleModuleName !== name.toLowerCase())) {
continue; continue;