UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

54 lines (44 loc) 2.02 kB
var timer = require('simple-timer'); var TimeSpan = require("timespan").TimeSpan; var logger = { log : console.log.bind(console), error : console.error.bind(console) }; var PASSED = 'PASSED'; var FAILED = 'FAILED'; function getDuration(ms){ return (new TimeSpan(ms)).toString(); } var RunStatus = function(testInfoList){ this.testRunStatus = testInfoList.reduce(function(resultStatus, testInfo){ resultStatus[testInfo.testId] = { status : "waiting", name : testInfo.name }; return resultStatus; }, {}); }; RunStatus.prototype.testStart = function(wid, testId){ timer.start(testId); logger.log("W:" + wid , "Test Started ", this.testRunStatus[testId].name, "(" + testId + ")"); }; RunStatus.prototype.testEnd = function(wid, testId, success){ timer.stop(testId); var resultText = success ? PASSED : FAILED; var testRunDuration = getDuration(timer.get(testId).delta); this.testRunStatus[testId].duration = testRunDuration; this.testRunStatus[testId].status = resultText; logger.log("W:" + wid, "Test", resultText, this.testRunStatus[testId].name, "(" + testId + ")", "duration;", testRunDuration); }; RunStatus.prototype.executionStart = function(executionId){ timer.start(executionId); }; RunStatus.prototype.executionEnd = function(executionId){ timer.stop(executionId); var passed = Object.keys(this.testRunStatus).filter(function(testId) { return this.testRunStatus[testId].status === PASSED; }.bind(this)).length; var failed = Object.keys(this.testRunStatus).length - passed; var duration = getDuration(timer.get(executionId).delta); logger.log("-----------------------------------------------------------------------"); logger.log("Execution completed,", "Duration:", duration, PASSED + ':', passed, FAILED + ':', failed); logger.log("-----------------------------------------------------------------------"); }; module.exports = RunStatus;