guard-jasmine 1.19.2 → 2.0.0beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +31 -234
- data/lib/generators/guard_jasmine/install_generator.rb +17 -0
- data/lib/generators/guard_jasmine/templates/Guardfile +9 -0
- data/lib/guard/jasmine.rb +18 -15
- data/lib/guard/jasmine/cli.rb +5 -5
- data/lib/guard/jasmine/formatter.rb +10 -0
- data/lib/guard/jasmine/inspector.rb +1 -2
- data/lib/guard/jasmine/phantomjs/guard-jasmine.js +54 -180
- data/lib/guard/jasmine/phantomjs/guard-reporter.js +187 -0
- data/lib/guard/jasmine/phantomjs/src/guard-jasmine.coffee +101 -0
- data/lib/guard/jasmine/phantomjs/src/guard-reporter.coffee +109 -0
- data/lib/guard/jasmine/phantomjs/test/guard-reporter_spec.coffee +41 -0
- data/lib/guard/jasmine/runner.rb +178 -268
- data/lib/guard/jasmine/server.rb +17 -3
- data/lib/guard/jasmine/util.rb +1 -7
- data/lib/guard/jasmine/version.rb +1 -1
- metadata +135 -26
- data/lib/guard/jasmine/phantomjs/guard-jasmine.coffee +0 -193
- data/lib/guard/jasmine/phantomjs/lib/console.js +0 -188
- data/lib/guard/jasmine/phantomjs/lib/junit_reporter.js +0 -224
- data/lib/guard/jasmine/phantomjs/lib/reporter.js +0 -144
- data/lib/guard/jasmine/phantomjs/lib/result.js +0 -155
- data/lib/guard/jasmine/phantomjs/src/console.coffee +0 -149
- data/lib/guard/jasmine/phantomjs/src/reporter.coffee +0 -139
- data/lib/guard/jasmine/phantomjs/src/result.coffee +0 -95
- data/lib/guard/jasmine/phantomjs/test/console_spec.coffee +0 -125
- data/lib/guard/jasmine/phantomjs/test/reporter_spec.coffee +0 -0
- data/lib/guard/jasmine/phantomjs/test/result_spec.coffee +0 -311
@@ -1,188 +0,0 @@
|
|
1
|
-
(function() {
|
2
|
-
var Console,
|
3
|
-
__slice = [].slice;
|
4
|
-
|
5
|
-
Console = (function() {
|
6
|
-
function Console(console) {
|
7
|
-
var log;
|
8
|
-
|
9
|
-
log = console.log;
|
10
|
-
console.log = function() {
|
11
|
-
var args;
|
12
|
-
|
13
|
-
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
14
|
-
return log.call(console, Console.format.apply(Console, args));
|
15
|
-
};
|
16
|
-
console.info = function() {
|
17
|
-
var args;
|
18
|
-
|
19
|
-
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
20
|
-
return log.call(console, "INFO: " + (Console.format.apply(Console, args)));
|
21
|
-
};
|
22
|
-
console.warn = function() {
|
23
|
-
var args;
|
24
|
-
|
25
|
-
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
26
|
-
return log.call(console, "WARN: " + (Console.format.apply(Console, args)));
|
27
|
-
};
|
28
|
-
console.error = function() {
|
29
|
-
var args;
|
30
|
-
|
31
|
-
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
32
|
-
return log.call(console, "ERROR: " + (Console.format.apply(Console, args)));
|
33
|
-
};
|
34
|
-
console.debug = function() {
|
35
|
-
var args;
|
36
|
-
|
37
|
-
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
38
|
-
return log.call(console, "DEBUG: " + (Console.format.apply(Console, args)));
|
39
|
-
};
|
40
|
-
}
|
41
|
-
|
42
|
-
Console.MAX_OBJECT_DEPTH = 2;
|
43
|
-
|
44
|
-
Console.format = function() {
|
45
|
-
var arg, args, result, _i, _len,
|
46
|
-
_this = this;
|
47
|
-
|
48
|
-
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
49
|
-
result = [];
|
50
|
-
if (typeof args[0] === 'string' && /%[sdifo]/gi.test(args[0])) {
|
51
|
-
arg = args.shift();
|
52
|
-
result.push(arg.replace(/%[sdifo]/gi, function(str) {
|
53
|
-
return Console.inspect(args.shift(), str);
|
54
|
-
}));
|
55
|
-
}
|
56
|
-
for (_i = 0, _len = args.length; _i < _len; _i++) {
|
57
|
-
arg = args[_i];
|
58
|
-
result.push(Console.inspect(arg));
|
59
|
-
}
|
60
|
-
return result.join(' ');
|
61
|
-
};
|
62
|
-
|
63
|
-
Console.inspect = function(object, type) {
|
64
|
-
var match, result;
|
65
|
-
|
66
|
-
switch (type) {
|
67
|
-
case '%s':
|
68
|
-
result = String(object);
|
69
|
-
if (match = /'(.*)'/.exec(result)) {
|
70
|
-
result = match[1];
|
71
|
-
}
|
72
|
-
break;
|
73
|
-
case '%d':
|
74
|
-
case '%i':
|
75
|
-
result = parseInt(object);
|
76
|
-
break;
|
77
|
-
case '%f':
|
78
|
-
result = parseFloat(object);
|
79
|
-
break;
|
80
|
-
default:
|
81
|
-
type = Object.prototype.toString.call(object).slice(8, -1);
|
82
|
-
if (type === 'Object' && object.toJSON) {
|
83
|
-
result = Console.pp(object.toJSON());
|
84
|
-
} else if (type === 'Object' && object.toString && object.toString() !== '[object Object]') {
|
85
|
-
result = Console.pp(object.toString());
|
86
|
-
if (match = /'(.*)'/.exec(result)) {
|
87
|
-
result = match[1];
|
88
|
-
}
|
89
|
-
} else if (type === 'String') {
|
90
|
-
result = String(object);
|
91
|
-
if (match = /'(.*)'/.exec(result)) {
|
92
|
-
result = match[1];
|
93
|
-
}
|
94
|
-
} else {
|
95
|
-
result = Console.pp(object);
|
96
|
-
}
|
97
|
-
}
|
98
|
-
return result;
|
99
|
-
};
|
100
|
-
|
101
|
-
Console.pp = function(object, depth) {
|
102
|
-
var key, result, type, value, _i, _len;
|
103
|
-
|
104
|
-
if (depth == null) {
|
105
|
-
depth = 0;
|
106
|
-
}
|
107
|
-
type = Object.prototype.toString.call(object).slice(8, -1);
|
108
|
-
result = '';
|
109
|
-
switch (type) {
|
110
|
-
case 'Undefined':
|
111
|
-
case 'Null':
|
112
|
-
result += type.toLowerCase();
|
113
|
-
break;
|
114
|
-
case 'Boolean':
|
115
|
-
case 'Number':
|
116
|
-
case 'Date':
|
117
|
-
result += object.toString();
|
118
|
-
break;
|
119
|
-
case 'String':
|
120
|
-
result += "'" + (object.toString()) + "'";
|
121
|
-
break;
|
122
|
-
case 'Array':
|
123
|
-
if (object.length > 0) {
|
124
|
-
result += '[';
|
125
|
-
for (_i = 0, _len = object.length; _i < _len; _i++) {
|
126
|
-
value = object[_i];
|
127
|
-
if (depth < Console.MAX_OBJECT_DEPTH || Object.prototype.toString.call(value).slice(8, -1) !== 'Object') {
|
128
|
-
result += "" + (Console.pp(value, depth + 1)) + ", ";
|
129
|
-
} else {
|
130
|
-
result += "[Object], ";
|
131
|
-
}
|
132
|
-
}
|
133
|
-
result = result.slice(0, -2);
|
134
|
-
result += ']';
|
135
|
-
} else {
|
136
|
-
result += '[]';
|
137
|
-
}
|
138
|
-
break;
|
139
|
-
case 'Object':
|
140
|
-
if (object.jquery) {
|
141
|
-
if (object.length > 0) {
|
142
|
-
result += '[';
|
143
|
-
object.each(function() {
|
144
|
-
return result += jQuery(this).html();
|
145
|
-
});
|
146
|
-
result += ']';
|
147
|
-
} else {
|
148
|
-
result += '[]';
|
149
|
-
}
|
150
|
-
} else if (Object.keys(object).length > 0) {
|
151
|
-
result += '{ ';
|
152
|
-
for (key in object) {
|
153
|
-
value = object[key];
|
154
|
-
if (depth < Console.MAX_OBJECT_DEPTH || Object.prototype.toString.call(value).slice(8, -1) !== 'Object') {
|
155
|
-
if (object.hasOwnProperty(key)) {
|
156
|
-
result += "" + key + ": " + (Console.pp(value, depth + 1)) + ", ";
|
157
|
-
}
|
158
|
-
} else {
|
159
|
-
result += "" + key + ": [Object], ";
|
160
|
-
}
|
161
|
-
}
|
162
|
-
result = result.slice(0, -2);
|
163
|
-
result += ' }';
|
164
|
-
} else {
|
165
|
-
result += '{}';
|
166
|
-
}
|
167
|
-
break;
|
168
|
-
case 'Function':
|
169
|
-
result += '[Function]';
|
170
|
-
}
|
171
|
-
return result;
|
172
|
-
};
|
173
|
-
|
174
|
-
return Console;
|
175
|
-
|
176
|
-
})();
|
177
|
-
|
178
|
-
if (typeof module !== 'undefined' && module.exports) {
|
179
|
-
if (module) {
|
180
|
-
module.exports = Console;
|
181
|
-
}
|
182
|
-
} else {
|
183
|
-
if (window) {
|
184
|
-
new Console(window.console);
|
185
|
-
}
|
186
|
-
}
|
187
|
-
|
188
|
-
}).call(this);
|
@@ -1,224 +0,0 @@
|
|
1
|
-
(function() {
|
2
|
-
function elapsed(startTime, endTime) {
|
3
|
-
return (endTime - startTime)/1000;
|
4
|
-
}
|
5
|
-
|
6
|
-
function ISODateString(d) {
|
7
|
-
function pad(n) { return n < 10 ? '0'+n : n; }
|
8
|
-
|
9
|
-
return d.getFullYear() + '-' +
|
10
|
-
pad(d.getMonth()+1) + '-' +
|
11
|
-
pad(d.getDate()) + 'T' +
|
12
|
-
pad(d.getHours()) + ':' +
|
13
|
-
pad(d.getMinutes()) + ':' +
|
14
|
-
pad(d.getSeconds());
|
15
|
-
}
|
16
|
-
|
17
|
-
function trim(str) {
|
18
|
-
return str.replace(/^\s+/, "" ).replace(/\s+$/, "" );
|
19
|
-
}
|
20
|
-
|
21
|
-
function escapeInvalidXmlChars(str) {
|
22
|
-
return str.replace(/\&/g, "&")
|
23
|
-
.replace(/</g, "<")
|
24
|
-
.replace(/\>/g, ">")
|
25
|
-
.replace(/\"/g, """)
|
26
|
-
.replace(/\'/g, "'");
|
27
|
-
}
|
28
|
-
|
29
|
-
/**
|
30
|
-
* Generates JUnit XML for the given spec run.
|
31
|
-
* Allows the test results to be used in java based CI
|
32
|
-
* systems like CruiseControl and Hudson.
|
33
|
-
*
|
34
|
-
* @param {string} savePath where to save the files
|
35
|
-
* @param {boolean} consolidate whether to save nested describes within the
|
36
|
-
* same file as their parent; default: true
|
37
|
-
* @param {boolean} useDotNotation whether to separate suite names with
|
38
|
-
* dots rather than spaces (ie "Class.init" not
|
39
|
-
* "Class init"); default: true
|
40
|
-
*/
|
41
|
-
var JUnitXmlReporter = function(savePath, consolidate, useDotNotation) {
|
42
|
-
this.savePath = savePath || '';
|
43
|
-
this.consolidate = consolidate === jasmine.undefined ? true : consolidate;
|
44
|
-
this.useDotNotation = useDotNotation === jasmine.undefined ? true : useDotNotation;
|
45
|
-
};
|
46
|
-
JUnitXmlReporter.finished_at = null; // will be updated after all files have been written
|
47
|
-
|
48
|
-
JUnitXmlReporter.prototype = {
|
49
|
-
reportSpecStarting: function(spec) {
|
50
|
-
spec.startTime = new Date();
|
51
|
-
|
52
|
-
if (!spec.suite.startTime) {
|
53
|
-
spec.suite.startTime = spec.startTime;
|
54
|
-
}
|
55
|
-
},
|
56
|
-
|
57
|
-
reportSpecResults: function(spec) {
|
58
|
-
var results = spec.results();
|
59
|
-
spec.didFail = !results.passed();
|
60
|
-
spec.duration = elapsed(spec.startTime, new Date());
|
61
|
-
spec.output = '<testcase classname="' + this.getFullName(spec.suite) +
|
62
|
-
'" name="' + escapeInvalidXmlChars(spec.description) + '" time="' + spec.duration + '">';
|
63
|
-
if(results.skipped) {
|
64
|
-
spec.output = spec.output + "<skipped />";
|
65
|
-
}
|
66
|
-
|
67
|
-
var failure = "";
|
68
|
-
var failures = 0;
|
69
|
-
var resultItems = results.getItems();
|
70
|
-
for (var i = 0; i < resultItems.length; i++) {
|
71
|
-
var result = resultItems[i];
|
72
|
-
|
73
|
-
if (result.type == 'expect' && result.passed && !result.passed()) {
|
74
|
-
failures += 1;
|
75
|
-
failure += '<failure type="' + result.type + '" message="' + trim(escapeInvalidXmlChars(result.message)) + '">';
|
76
|
-
failure += escapeInvalidXmlChars(result.trace.stack || result.message);
|
77
|
-
failure += "</failure>";
|
78
|
-
}
|
79
|
-
}
|
80
|
-
if (failure) {
|
81
|
-
spec.output += failure;
|
82
|
-
}
|
83
|
-
spec.output += "</testcase>";
|
84
|
-
},
|
85
|
-
|
86
|
-
reportSuiteResults: function(suite) {
|
87
|
-
var results = suite.results();
|
88
|
-
var specs = suite.specs();
|
89
|
-
var specOutput = "";
|
90
|
-
// for JUnit results, let's only include directly failed tests (not nested suites')
|
91
|
-
var failedCount = 0;
|
92
|
-
|
93
|
-
suite.status = results.passed() ? 'Passed.' : 'Failed.';
|
94
|
-
if (results.totalCount === 0) { // todo: change this to check results.skipped
|
95
|
-
suite.status = 'Skipped.';
|
96
|
-
}
|
97
|
-
|
98
|
-
// if a suite has no (active?) specs, reportSpecStarting is never called
|
99
|
-
// and thus the suite has no startTime -- account for that here
|
100
|
-
suite.startTime = suite.startTime || new Date();
|
101
|
-
suite.duration = elapsed(suite.startTime, new Date());
|
102
|
-
|
103
|
-
for (var i = 0; i < specs.length; i++) {
|
104
|
-
failedCount += specs[i].didFail ? 1 : 0;
|
105
|
-
specOutput += "\n " + specs[i].output;
|
106
|
-
}
|
107
|
-
suite.output = '\n<testsuite name="' + this.getFullName(suite) +
|
108
|
-
'" errors="0" tests="' + specs.length + '" failures="' + failedCount +
|
109
|
-
'" time="' + suite.duration + '" timestamp="' + ISODateString(suite.startTime) + '">';
|
110
|
-
suite.output += specOutput;
|
111
|
-
suite.output += "\n</testsuite>";
|
112
|
-
},
|
113
|
-
|
114
|
-
reportRunnerResults: function(runner) {
|
115
|
-
var suites = runner.suites();
|
116
|
-
for (var i = 0; i < suites.length; i++) {
|
117
|
-
var suite = suites[i];
|
118
|
-
var fileName = 'TEST-' + this.getFullName(suite, true) + '.xml';
|
119
|
-
var output = '<?xml version="1.0" encoding="UTF-8" ?>';
|
120
|
-
// if we are consolidating, only write out top-level suites
|
121
|
-
if (this.consolidate && suite.parentSuite) {
|
122
|
-
continue;
|
123
|
-
}
|
124
|
-
else if (this.consolidate) {
|
125
|
-
output += "\n<testsuites>";
|
126
|
-
output += this.getNestedOutput(suite);
|
127
|
-
output += "\n</testsuites>";
|
128
|
-
this.writeFile(this.savePath, fileName, output);
|
129
|
-
}
|
130
|
-
else {
|
131
|
-
output += suite.output;
|
132
|
-
this.writeFile(this.savePath, fileName, output);
|
133
|
-
}
|
134
|
-
}
|
135
|
-
// When all done, make it known on JUnitXmlReporter
|
136
|
-
JUnitXmlReporter.finished_at = (new Date()).getTime();
|
137
|
-
},
|
138
|
-
|
139
|
-
getNestedOutput: function(suite) {
|
140
|
-
var output = suite.output;
|
141
|
-
for (var i = 0; i < suite.suites().length; i++) {
|
142
|
-
output += this.getNestedOutput(suite.suites()[i]);
|
143
|
-
}
|
144
|
-
return output;
|
145
|
-
},
|
146
|
-
|
147
|
-
writeFile: function(path, filename, text) {
|
148
|
-
function getQualifiedFilename(separator) {
|
149
|
-
if (path && path.substr(-1) !== separator && filename.substr(0) !== separator) {
|
150
|
-
path += separator;
|
151
|
-
}
|
152
|
-
return path + filename;
|
153
|
-
}
|
154
|
-
|
155
|
-
// Rhino
|
156
|
-
try {
|
157
|
-
// turn filename into a qualified path
|
158
|
-
if (path) {
|
159
|
-
filename = getQualifiedFilename(java.lang.System.getProperty("file.separator"));
|
160
|
-
// create parent dir and ancestors if necessary
|
161
|
-
var file = java.io.File(filename);
|
162
|
-
var parentDir = file.getParentFile();
|
163
|
-
if (!parentDir.exists()) {
|
164
|
-
parentDir.mkdirs();
|
165
|
-
}
|
166
|
-
}
|
167
|
-
// finally write the file
|
168
|
-
var out = new java.io.BufferedWriter(new java.io.FileWriter(filename));
|
169
|
-
out.write(text);
|
170
|
-
out.close();
|
171
|
-
return;
|
172
|
-
} catch (e) {}
|
173
|
-
// PhantomJS, via a method injected by phantomjs-testrunner.js
|
174
|
-
try {
|
175
|
-
// turn filename into a qualified path
|
176
|
-
filename = getQualifiedFilename(window.fs_path_separator);
|
177
|
-
__phantom_writeFile(filename, text);
|
178
|
-
return;
|
179
|
-
} catch (f) {}
|
180
|
-
// Node.js
|
181
|
-
try {
|
182
|
-
var fs = require("fs");
|
183
|
-
var nodejs_path = require("path");
|
184
|
-
var fd = fs.openSync(nodejs_path.join(path, filename), "w");
|
185
|
-
fs.writeSync(fd, text, 0);
|
186
|
-
fs.closeSync(fd);
|
187
|
-
return;
|
188
|
-
} catch (g) {}
|
189
|
-
},
|
190
|
-
|
191
|
-
getFullName: function(suite, isFilename) {
|
192
|
-
var fullName;
|
193
|
-
if (this.useDotNotation) {
|
194
|
-
fullName = suite.description;
|
195
|
-
for (var parentSuite = suite.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) {
|
196
|
-
fullName = parentSuite.description + '.' + fullName;
|
197
|
-
}
|
198
|
-
}
|
199
|
-
else {
|
200
|
-
fullName = suite.getFullName();
|
201
|
-
}
|
202
|
-
|
203
|
-
// Either remove or escape invalid XML characters
|
204
|
-
if (isFilename) {
|
205
|
-
return fullName.replace(/[^\w]/g, "");
|
206
|
-
}
|
207
|
-
return escapeInvalidXmlChars(fullName);
|
208
|
-
},
|
209
|
-
|
210
|
-
log: function(str) {
|
211
|
-
var console = jasmine.getGlobal().console;
|
212
|
-
|
213
|
-
if (console && console.log) {
|
214
|
-
console.log(str);
|
215
|
-
}
|
216
|
-
}
|
217
|
-
};
|
218
|
-
|
219
|
-
if (typeof module !== 'undefined' && module.exports) {
|
220
|
-
module.exports = JUnitXmlReporter;
|
221
|
-
} else {
|
222
|
-
window.JUnitXmlReporter = JUnitXmlReporter;
|
223
|
-
}
|
224
|
-
}).call(this);
|
@@ -1,144 +0,0 @@
|
|
1
|
-
(function() {
|
2
|
-
var ConsoleReporter;
|
3
|
-
|
4
|
-
ConsoleReporter = (function() {
|
5
|
-
function ConsoleReporter() {}
|
6
|
-
|
7
|
-
ConsoleReporter.prototype.runnerResult = {
|
8
|
-
passed: false,
|
9
|
-
stats: {
|
10
|
-
specs: 0,
|
11
|
-
failures: 0,
|
12
|
-
time: 0.0
|
13
|
-
},
|
14
|
-
suites: []
|
15
|
-
};
|
16
|
-
|
17
|
-
ConsoleReporter.prototype.specCount = 0;
|
18
|
-
|
19
|
-
ConsoleReporter.prototype.currentSpecs = {};
|
20
|
-
|
21
|
-
ConsoleReporter.prototype.nestedSuiteResults = {};
|
22
|
-
|
23
|
-
ConsoleReporter.prototype.reportSpecStarting = function(spec) {
|
24
|
-
return console.log("SPEC_START: " + spec.id);
|
25
|
-
};
|
26
|
-
|
27
|
-
ConsoleReporter.prototype.reportSpecResults = function(spec) {
|
28
|
-
var messages, result, specResult, _base, _i, _len, _name, _ref;
|
29
|
-
|
30
|
-
if (!spec.results().skipped) {
|
31
|
-
specResult = {
|
32
|
-
id: spec.id,
|
33
|
-
description: '' + spec.description,
|
34
|
-
passed: spec.results().failedCount === 0
|
35
|
-
};
|
36
|
-
if (spec.results().failedCount !== 0) {
|
37
|
-
messages = [];
|
38
|
-
_ref = spec.results().getItems();
|
39
|
-
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
40
|
-
result = _ref[_i];
|
41
|
-
messages.push(result.message);
|
42
|
-
}
|
43
|
-
if (messages.length !== 0) {
|
44
|
-
specResult['messages'] = messages;
|
45
|
-
}
|
46
|
-
}
|
47
|
-
this.specCount += 1;
|
48
|
-
(_base = this.currentSpecs)[_name = spec.suite.id] || (_base[_name] = []);
|
49
|
-
return this.currentSpecs[spec.suite.id].push(specResult);
|
50
|
-
}
|
51
|
-
};
|
52
|
-
|
53
|
-
ConsoleReporter.prototype.reportSuiteResults = function(suite) {
|
54
|
-
var parent, suiteResult, _base, _ref;
|
55
|
-
|
56
|
-
if (!suite.results().skipped) {
|
57
|
-
suiteResult = {
|
58
|
-
id: suite.id,
|
59
|
-
parent: (_ref = suite.parentSuite) != null ? _ref.id : void 0,
|
60
|
-
description: '' + suite.description,
|
61
|
-
passed: suite.results().failedCount === 0,
|
62
|
-
specs: this.currentSpecs[suite.id] || [],
|
63
|
-
suites: []
|
64
|
-
};
|
65
|
-
if (suite.parentSuite != null) {
|
66
|
-
parent = suite.parentSuite.id;
|
67
|
-
(_base = this.nestedSuiteResults)[parent] || (_base[parent] = []);
|
68
|
-
return this.nestedSuiteResults[parent].push(suiteResult);
|
69
|
-
} else {
|
70
|
-
this.addNestedSuites(suiteResult);
|
71
|
-
this.removeEmptySuites(suiteResult);
|
72
|
-
if (suiteResult.specs.length !== 0 || suiteResult.suites.length !== 0) {
|
73
|
-
return this.runnerResult.suites.push(suiteResult);
|
74
|
-
}
|
75
|
-
}
|
76
|
-
}
|
77
|
-
};
|
78
|
-
|
79
|
-
ConsoleReporter.prototype.reportRunnerResults = function(runner) {
|
80
|
-
var end, runtime;
|
81
|
-
|
82
|
-
runtime = (new Date().getTime() - this.startTime) / 1000;
|
83
|
-
this.runnerResult['passed'] = runner.results().failedCount === 0;
|
84
|
-
this.runnerResult['stats'] = {
|
85
|
-
specs: this.specCount,
|
86
|
-
failures: runner.results().failedCount,
|
87
|
-
time: runtime
|
88
|
-
};
|
89
|
-
if (window.__coverage__) {
|
90
|
-
this.runnerResult['coverage'] = window.__coverage__;
|
91
|
-
}
|
92
|
-
end = function() {
|
93
|
-
return console.log("RUNNER_END");
|
94
|
-
};
|
95
|
-
return setTimeout(end, 10);
|
96
|
-
};
|
97
|
-
|
98
|
-
ConsoleReporter.prototype.reportRunnerStarting = function(runner) {
|
99
|
-
return this.startTime = new Date().getTime();
|
100
|
-
};
|
101
|
-
|
102
|
-
ConsoleReporter.prototype.addNestedSuites = function(suiteResult) {
|
103
|
-
var suite, _i, _len, _ref, _results;
|
104
|
-
|
105
|
-
if (this.nestedSuiteResults[suiteResult.id]) {
|
106
|
-
_ref = this.nestedSuiteResults[suiteResult.id];
|
107
|
-
_results = [];
|
108
|
-
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
109
|
-
suite = _ref[_i];
|
110
|
-
this.addNestedSuites(suite);
|
111
|
-
_results.push(suiteResult.suites.push(suite));
|
112
|
-
}
|
113
|
-
return _results;
|
114
|
-
}
|
115
|
-
};
|
116
|
-
|
117
|
-
ConsoleReporter.prototype.removeEmptySuites = function(suiteResult) {
|
118
|
-
var suite, suites, _i, _len, _ref;
|
119
|
-
|
120
|
-
suites = [];
|
121
|
-
_ref = suiteResult.suites;
|
122
|
-
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
123
|
-
suite = _ref[_i];
|
124
|
-
this.removeEmptySuites(suite);
|
125
|
-
if (suite.suites.length !== 0 || suite.specs.length !== 0) {
|
126
|
-
suites.push(suite);
|
127
|
-
}
|
128
|
-
}
|
129
|
-
return suiteResult.suites = suites;
|
130
|
-
};
|
131
|
-
|
132
|
-
ConsoleReporter.prototype.log = function(message) {};
|
133
|
-
|
134
|
-
return ConsoleReporter;
|
135
|
-
|
136
|
-
})();
|
137
|
-
|
138
|
-
if (typeof module !== 'undefined' && module.exports) {
|
139
|
-
module.exports = ConsoleReporter;
|
140
|
-
} else {
|
141
|
-
window.ConsoleReporter = ConsoleReporter;
|
142
|
-
}
|
143
|
-
|
144
|
-
}).call(this);
|