execution-metrics.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.ExecutionMetrics = void 0;
  4. var ExecutionMetrics = /** @class */ (function () {
  5. function ExecutionMetrics() {
  6. this.successfulSpecs = 0;
  7. this.failedSpecs = 0;
  8. this.pendingSpecs = 0;
  9. this.skippedSpecs = 0;
  10. this.totalSpecsDefined = 0;
  11. this.executedSpecs = 0;
  12. this.globalErrors = [];
  13. this.random = false;
  14. }
  15. ExecutionMetrics.pluralize = function (count) {
  16. return count > 1 ? "s" : "";
  17. };
  18. ExecutionMetrics.prototype.start = function (suiteInfo) {
  19. this.startTime = (new Date()).getTime();
  20. this.totalSpecsDefined = suiteInfo && suiteInfo.totalSpecsDefined ? suiteInfo.totalSpecsDefined : 0;
  21. };
  22. ExecutionMetrics.prototype.stop = function (runDetails) {
  23. var totalSpecs = this.failedSpecs + this.successfulSpecs + this.pendingSpecs;
  24. this.duration = this.formatDuration((new Date()).getTime() - this.startTime);
  25. this.executedSpecs = this.failedSpecs + this.successfulSpecs;
  26. this.totalSpecsDefined = this.totalSpecsDefined ? this.totalSpecsDefined : totalSpecs;
  27. this.skippedSpecs = this.totalSpecsDefined - totalSpecs;
  28. this.random = runDetails.order.random;
  29. this.seed = runDetails.order.seed;
  30. };
  31. ExecutionMetrics.prototype.startSpec = function () {
  32. this.specStartTime = (new Date()).getTime();
  33. };
  34. ExecutionMetrics.prototype.stopSpec = function (result) {
  35. result._jsr = {
  36. formattedDuration: this.formatDuration((new Date()).getTime() - this.specStartTime)
  37. };
  38. };
  39. ExecutionMetrics.prototype.formatDuration = function (durationInMs) {
  40. var duration = "";
  41. var durationInSecs = durationInMs / 1000;
  42. var durationInMins;
  43. var durationInHrs;
  44. if (durationInSecs < 1) {
  45. return durationInSecs + " sec" + ExecutionMetrics.pluralize(durationInSecs);
  46. }
  47. durationInSecs = Math.round(durationInSecs);
  48. if (durationInSecs < 60) {
  49. return durationInSecs + " sec" + ExecutionMetrics.pluralize(durationInSecs);
  50. }
  51. durationInMins = Math.floor(durationInSecs / 60);
  52. durationInSecs = durationInSecs % 60;
  53. if (durationInSecs) {
  54. duration = " " + durationInSecs + " sec" + ExecutionMetrics.pluralize(durationInSecs);
  55. }
  56. if (durationInMins < 60) {
  57. return durationInMins + " min" + ExecutionMetrics.pluralize(durationInMins) + duration;
  58. }
  59. durationInHrs = Math.floor(durationInMins / 60);
  60. durationInMins = durationInMins % 60;
  61. if (durationInMins) {
  62. duration = " " + durationInMins + " min" + ExecutionMetrics.pluralize(durationInMins) + duration;
  63. }
  64. return durationInHrs + " hour" + ExecutionMetrics.pluralize(durationInHrs) + duration;
  65. };
  66. return ExecutionMetrics;
  67. }());
  68. exports.ExecutionMetrics = ExecutionMetrics;
  69. //# sourceMappingURL=execution-metrics.js.map