Removed obsolete console reporter from core
Anyone who was still using this should use the one in jasmine-npm instead. [Finishes #80410262]
This commit is contained in:
@@ -44,13 +44,6 @@ module.exports = {
|
|||||||
src: ['lib/jasmine-core/boot/node_boot.js'],
|
src: ['lib/jasmine-core/boot/node_boot.js'],
|
||||||
dest: 'lib/jasmine-core/node_boot.js'
|
dest: 'lib/jasmine-core/node_boot.js'
|
||||||
},
|
},
|
||||||
console: {
|
|
||||||
src: [
|
|
||||||
'src/console/requireConsole.js',
|
|
||||||
'src/console/ConsoleReporter.js'
|
|
||||||
],
|
|
||||||
dest: 'lib/console/console.js'
|
|
||||||
},
|
|
||||||
options: {
|
options: {
|
||||||
banner: license(),
|
banner: license(),
|
||||||
process: {
|
process: {
|
||||||
|
|||||||
@@ -20,171 +20,3 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|||||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
function getJasmineRequireObj() {
|
|
||||||
if (typeof module !== 'undefined' && module.exports) {
|
|
||||||
return exports;
|
|
||||||
} else {
|
|
||||||
window.jasmineRequire = window.jasmineRequire || {};
|
|
||||||
return window.jasmineRequire;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getJasmineRequireObj().console = function(jRequire, j$) {
|
|
||||||
j$.ConsoleReporter = jRequire.ConsoleReporter();
|
|
||||||
};
|
|
||||||
|
|
||||||
getJasmineRequireObj().ConsoleReporter = function() {
|
|
||||||
|
|
||||||
var noopTimer = {
|
|
||||||
start: function(){},
|
|
||||||
elapsed: function(){ return 0; }
|
|
||||||
};
|
|
||||||
|
|
||||||
function ConsoleReporter(options) {
|
|
||||||
var print = options.print,
|
|
||||||
showColors = options.showColors || false,
|
|
||||||
onComplete = options.onComplete || function() {},
|
|
||||||
timer = options.timer || noopTimer,
|
|
||||||
specCount,
|
|
||||||
failureCount,
|
|
||||||
failedSpecs = [],
|
|
||||||
pendingCount,
|
|
||||||
ansi = {
|
|
||||||
green: '\x1B[32m',
|
|
||||||
red: '\x1B[31m',
|
|
||||||
yellow: '\x1B[33m',
|
|
||||||
none: '\x1B[0m'
|
|
||||||
},
|
|
||||||
failedSuites = [];
|
|
||||||
|
|
||||||
print('ConsoleReporter is deprecated and will be removed in a future version.');
|
|
||||||
|
|
||||||
this.jasmineStarted = function() {
|
|
||||||
specCount = 0;
|
|
||||||
failureCount = 0;
|
|
||||||
pendingCount = 0;
|
|
||||||
print('Started');
|
|
||||||
printNewline();
|
|
||||||
timer.start();
|
|
||||||
};
|
|
||||||
|
|
||||||
this.jasmineDone = function() {
|
|
||||||
printNewline();
|
|
||||||
for (var i = 0; i < failedSpecs.length; i++) {
|
|
||||||
specFailureDetails(failedSpecs[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(specCount > 0) {
|
|
||||||
printNewline();
|
|
||||||
|
|
||||||
var specCounts = specCount + ' ' + plural('spec', specCount) + ', ' +
|
|
||||||
failureCount + ' ' + plural('failure', failureCount);
|
|
||||||
|
|
||||||
if (pendingCount) {
|
|
||||||
specCounts += ', ' + pendingCount + ' pending ' + plural('spec', pendingCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
print(specCounts);
|
|
||||||
} else {
|
|
||||||
print('No specs found');
|
|
||||||
}
|
|
||||||
|
|
||||||
printNewline();
|
|
||||||
var seconds = timer.elapsed() / 1000;
|
|
||||||
print('Finished in ' + seconds + ' ' + plural('second', seconds));
|
|
||||||
printNewline();
|
|
||||||
|
|
||||||
for(i = 0; i < failedSuites.length; i++) {
|
|
||||||
suiteFailureDetails(failedSuites[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
onComplete(failureCount === 0);
|
|
||||||
};
|
|
||||||
|
|
||||||
this.specDone = function(result) {
|
|
||||||
specCount++;
|
|
||||||
|
|
||||||
if (result.status == 'pending') {
|
|
||||||
pendingCount++;
|
|
||||||
print(colored('yellow', '*'));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result.status == 'passed') {
|
|
||||||
print(colored('green', '.'));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result.status == 'failed') {
|
|
||||||
failureCount++;
|
|
||||||
failedSpecs.push(result);
|
|
||||||
print(colored('red', 'F'));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
this.suiteDone = function(result) {
|
|
||||||
if (result.failedExpectations && result.failedExpectations.length > 0) {
|
|
||||||
failureCount++;
|
|
||||||
failedSuites.push(result);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return this;
|
|
||||||
|
|
||||||
function printNewline() {
|
|
||||||
print('\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
function colored(color, str) {
|
|
||||||
return showColors ? (ansi[color] + str + ansi.none) : str;
|
|
||||||
}
|
|
||||||
|
|
||||||
function plural(str, count) {
|
|
||||||
return count == 1 ? str : str + 's';
|
|
||||||
}
|
|
||||||
|
|
||||||
function repeat(thing, times) {
|
|
||||||
var arr = [];
|
|
||||||
for (var i = 0; i < times; i++) {
|
|
||||||
arr.push(thing);
|
|
||||||
}
|
|
||||||
return arr;
|
|
||||||
}
|
|
||||||
|
|
||||||
function indent(str, spaces) {
|
|
||||||
var lines = (str || '').split('\n');
|
|
||||||
var newArr = [];
|
|
||||||
for (var i = 0; i < lines.length; i++) {
|
|
||||||
newArr.push(repeat(' ', spaces).join('') + lines[i]);
|
|
||||||
}
|
|
||||||
return newArr.join('\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
function specFailureDetails(result) {
|
|
||||||
printNewline();
|
|
||||||
print(result.fullName);
|
|
||||||
|
|
||||||
for (var i = 0; i < result.failedExpectations.length; i++) {
|
|
||||||
var failedExpectation = result.failedExpectations[i];
|
|
||||||
printNewline();
|
|
||||||
print(indent(failedExpectation.message, 2));
|
|
||||||
print(indent(failedExpectation.stack, 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
printNewline();
|
|
||||||
}
|
|
||||||
|
|
||||||
function suiteFailureDetails(result) {
|
|
||||||
for (var i = 0; i < result.failedExpectations.length; i++) {
|
|
||||||
printNewline();
|
|
||||||
print(colored('red', 'An error was thrown in an afterAll'));
|
|
||||||
printNewline();
|
|
||||||
print(colored('red', 'AfterAll ' + result.failedExpectations[i].message));
|
|
||||||
|
|
||||||
}
|
|
||||||
printNewline();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ConsoleReporter;
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
module.exports = function(jasmineRequire) {
|
module.exports = function(jasmineRequire) {
|
||||||
var jasmine = jasmineRequire.core(jasmineRequire);
|
var jasmine = jasmineRequire.core(jasmineRequire);
|
||||||
|
|
||||||
var consoleFns = require('../console/console.js');
|
|
||||||
consoleFns.console(consoleFns, jasmine);
|
|
||||||
|
|
||||||
var env = jasmine.getEnv();
|
var env = jasmine.getEnv();
|
||||||
|
|
||||||
var jasmineInterface = jasmineRequire.interface(jasmine, env);
|
var jasmineInterface = jasmineRequire.interface(jasmine, env);
|
||||||
|
|||||||
@@ -23,9 +23,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||||||
module.exports = function(jasmineRequire) {
|
module.exports = function(jasmineRequire) {
|
||||||
var jasmine = jasmineRequire.core(jasmineRequire);
|
var jasmine = jasmineRequire.core(jasmineRequire);
|
||||||
|
|
||||||
var consoleFns = require('../console/console.js');
|
|
||||||
consoleFns.console(consoleFns, jasmine);
|
|
||||||
|
|
||||||
var env = jasmine.getEnv();
|
var env = jasmine.getEnv();
|
||||||
|
|
||||||
var jasmineInterface = jasmineRequire.interface(jasmine, env);
|
var jasmineInterface = jasmineRequire.interface(jasmine, env);
|
||||||
|
|||||||
@@ -1,270 +0,0 @@
|
|||||||
describe("ConsoleReporter", function() {
|
|
||||||
var out;
|
|
||||||
|
|
||||||
beforeEach(function() {
|
|
||||||
out = (function() {
|
|
||||||
var output = "";
|
|
||||||
return {
|
|
||||||
print: function(str) {
|
|
||||||
output += str;
|
|
||||||
},
|
|
||||||
getOutput: function() {
|
|
||||||
return output.replace('ConsoleReporter is deprecated and will be removed in a future version.', '');
|
|
||||||
},
|
|
||||||
clear: function() {
|
|
||||||
output = "";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}());
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports that the suite has started to the console", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.jasmineStarted();
|
|
||||||
|
|
||||||
expect(out.getOutput()).toEqual("Started\n");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("starts the provided timer when jasmine starts", function() {
|
|
||||||
var timerSpy = jasmine.createSpyObj('timer', ['start']),
|
|
||||||
reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print,
|
|
||||||
timer: timerSpy
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.jasmineStarted();
|
|
||||||
|
|
||||||
expect(timerSpy.start).toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a passing spec as a dot", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.specDone({status: "passed"});
|
|
||||||
|
|
||||||
expect(out.getOutput()).toEqual(".");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("does not report a disabled spec", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.specDone({status: "disabled"});
|
|
||||||
|
|
||||||
expect(out.getOutput()).toEqual("");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a failing spec as an 'F'", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.specDone({status: "failed"});
|
|
||||||
|
|
||||||
expect(out.getOutput()).toEqual("F");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a pending spec as a '*'", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.specDone({status: "pending"});
|
|
||||||
|
|
||||||
expect(out.getOutput()).toEqual("*");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("alerts user if there are no specs", function(){
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.jasmineStarted();
|
|
||||||
out.clear();
|
|
||||||
reporter.jasmineDone();
|
|
||||||
|
|
||||||
expect(out.getOutput()).toMatch(/No specs found/);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a summary when done (singular spec and time)", function() {
|
|
||||||
var timerSpy = jasmine.createSpyObj('timer', ['start', 'elapsed']),
|
|
||||||
reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print,
|
|
||||||
timer: timerSpy
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.jasmineStarted();
|
|
||||||
reporter.specDone({status: "passed"});
|
|
||||||
|
|
||||||
timerSpy.elapsed.and.returnValue(1000);
|
|
||||||
|
|
||||||
out.clear();
|
|
||||||
reporter.jasmineDone();
|
|
||||||
|
|
||||||
expect(out.getOutput()).toMatch(/1 spec, 0 failures/);
|
|
||||||
expect(out.getOutput()).not.toMatch(/0 pending specs/);
|
|
||||||
expect(out.getOutput()).toMatch("Finished in 1 second\n");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a summary when done (pluralized specs and seconds)", function() {
|
|
||||||
var timerSpy = jasmine.createSpyObj('timer', ['start', 'elapsed']),
|
|
||||||
reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print,
|
|
||||||
timer: timerSpy
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.jasmineStarted();
|
|
||||||
reporter.specDone({status: "passed"});
|
|
||||||
reporter.specDone({status: "pending"});
|
|
||||||
reporter.specDone({
|
|
||||||
status: "failed",
|
|
||||||
description: "with a failing spec",
|
|
||||||
fullName: "A suite with a failing spec",
|
|
||||||
failedExpectations: [
|
|
||||||
{
|
|
||||||
passed: false,
|
|
||||||
message: "Expected true to be false.",
|
|
||||||
expected: false,
|
|
||||||
actual: true,
|
|
||||||
stack: "foo\nbar\nbaz"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
out.clear();
|
|
||||||
|
|
||||||
timerSpy.elapsed.and.returnValue(100);
|
|
||||||
|
|
||||||
reporter.jasmineDone();
|
|
||||||
|
|
||||||
expect(out.getOutput()).toMatch(/3 specs, 1 failure, 1 pending spec/);
|
|
||||||
expect(out.getOutput()).toMatch("Finished in 0.1 seconds\n");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a summary when done that includes stack traces for a failing suite", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.jasmineStarted();
|
|
||||||
reporter.specDone({status: "passed"});
|
|
||||||
reporter.specDone({
|
|
||||||
status: "failed",
|
|
||||||
description: "with a failing spec",
|
|
||||||
fullName: "A suite with a failing spec",
|
|
||||||
failedExpectations: [
|
|
||||||
{
|
|
||||||
passed: false,
|
|
||||||
message: "Expected true to be false.",
|
|
||||||
expected: false,
|
|
||||||
actual: true,
|
|
||||||
stack: "foo bar baz"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
out.clear();
|
|
||||||
|
|
||||||
reporter.jasmineDone();
|
|
||||||
|
|
||||||
expect(out.getOutput()).toMatch(/true to be false/);
|
|
||||||
expect(out.getOutput()).toMatch(/foo bar baz/);
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('onComplete callback', function(){
|
|
||||||
var onComplete, reporter;
|
|
||||||
|
|
||||||
beforeEach(function() {
|
|
||||||
onComplete = jasmine.createSpy('onComplete');
|
|
||||||
reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print,
|
|
||||||
onComplete: onComplete
|
|
||||||
});
|
|
||||||
reporter.jasmineStarted();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("is called when the suite is done", function() {
|
|
||||||
reporter.jasmineDone();
|
|
||||||
expect(onComplete).toHaveBeenCalledWith(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('calls it with false if there are spec failures', function() {
|
|
||||||
reporter.specDone({status: "failed", failedExpectations: []});
|
|
||||||
reporter.jasmineDone();
|
|
||||||
expect(onComplete).toHaveBeenCalledWith(false);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('calls it with false if there are suite failures', function() {
|
|
||||||
reporter.specDone({status: "passed"});
|
|
||||||
reporter.suiteDone({failedExpectations: [{ message: 'bananas' }] });
|
|
||||||
reporter.jasmineDone();
|
|
||||||
expect(onComplete).toHaveBeenCalledWith(false);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("with color", function() {
|
|
||||||
it("reports that the suite has started to the console", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print,
|
|
||||||
showColors: true
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.jasmineStarted();
|
|
||||||
|
|
||||||
expect(out.getOutput()).toEqual("Started\n");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a passing spec as a dot", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print,
|
|
||||||
showColors: true
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.specDone({status: "passed"});
|
|
||||||
|
|
||||||
expect(out.getOutput()).toEqual("\x1B[32m.\x1B[0m");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("does not report a disabled spec", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print,
|
|
||||||
showColors: true
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.specDone({status: 'disabled'});
|
|
||||||
|
|
||||||
expect(out.getOutput()).toEqual("");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a failing spec as an 'F'", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print,
|
|
||||||
showColors: true
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.specDone({status: 'failed'});
|
|
||||||
|
|
||||||
expect(out.getOutput()).toEqual("\x1B[31mF\x1B[0m");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("displays all afterAll exceptions", function() {
|
|
||||||
var reporter = new jasmineUnderTest.ConsoleReporter({
|
|
||||||
print: out.print,
|
|
||||||
showColors: true
|
|
||||||
});
|
|
||||||
|
|
||||||
reporter.suiteDone({ failedExpectations: [{ message: 'After All Exception' }] });
|
|
||||||
reporter.suiteDone({ failedExpectations: [{ message: 'Some Other Exception' }] });
|
|
||||||
reporter.jasmineDone();
|
|
||||||
|
|
||||||
expect(out.getOutput()).toMatch(/After All Exception/);
|
|
||||||
expect(out.getOutput()).toMatch(/Some Other Exception/);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getSourceFiles() {
|
function getSourceFiles() {
|
||||||
var src_files = ['core/**/*.js', 'console/**/*.js', 'version.js'];
|
var src_files = ['core/**/*.js', 'version.js'];
|
||||||
src_files.forEach(function(file) {
|
src_files.forEach(function(file) {
|
||||||
var filePath = path.join(__dirname, "../../", 'src/', file);
|
var filePath = path.join(__dirname, "../../", 'src/', file);
|
||||||
glob.sync(filePath).forEach(function(resolvedFile) {
|
glob.sync(filePath).forEach(function(resolvedFile) {
|
||||||
@@ -25,9 +25,6 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
extend(jasmineUnderTestRequire, require(path.join(__dirname,"../../src/console/requireConsole.js")));
|
|
||||||
getSourceFiles();
|
getSourceFiles();
|
||||||
global.jasmineUnderTest = jasmineUnderTestRequire.core(jasmineUnderTestRequire);
|
global.jasmineUnderTest = jasmineUnderTestRequire.core(jasmineUnderTestRequire);
|
||||||
|
|
||||||
jasmineUnderTestRequire.console(jasmineUnderTestRequire, jasmineUnderTest);
|
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -1,155 +0,0 @@
|
|||||||
getJasmineRequireObj().ConsoleReporter = function() {
|
|
||||||
|
|
||||||
var noopTimer = {
|
|
||||||
start: function(){},
|
|
||||||
elapsed: function(){ return 0; }
|
|
||||||
};
|
|
||||||
|
|
||||||
function ConsoleReporter(options) {
|
|
||||||
var print = options.print,
|
|
||||||
showColors = options.showColors || false,
|
|
||||||
onComplete = options.onComplete || function() {},
|
|
||||||
timer = options.timer || noopTimer,
|
|
||||||
specCount,
|
|
||||||
failureCount,
|
|
||||||
failedSpecs = [],
|
|
||||||
pendingCount,
|
|
||||||
ansi = {
|
|
||||||
green: '\x1B[32m',
|
|
||||||
red: '\x1B[31m',
|
|
||||||
yellow: '\x1B[33m',
|
|
||||||
none: '\x1B[0m'
|
|
||||||
},
|
|
||||||
failedSuites = [];
|
|
||||||
|
|
||||||
print('ConsoleReporter is deprecated and will be removed in a future version.');
|
|
||||||
|
|
||||||
this.jasmineStarted = function() {
|
|
||||||
specCount = 0;
|
|
||||||
failureCount = 0;
|
|
||||||
pendingCount = 0;
|
|
||||||
print('Started');
|
|
||||||
printNewline();
|
|
||||||
timer.start();
|
|
||||||
};
|
|
||||||
|
|
||||||
this.jasmineDone = function() {
|
|
||||||
printNewline();
|
|
||||||
for (var i = 0; i < failedSpecs.length; i++) {
|
|
||||||
specFailureDetails(failedSpecs[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(specCount > 0) {
|
|
||||||
printNewline();
|
|
||||||
|
|
||||||
var specCounts = specCount + ' ' + plural('spec', specCount) + ', ' +
|
|
||||||
failureCount + ' ' + plural('failure', failureCount);
|
|
||||||
|
|
||||||
if (pendingCount) {
|
|
||||||
specCounts += ', ' + pendingCount + ' pending ' + plural('spec', pendingCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
print(specCounts);
|
|
||||||
} else {
|
|
||||||
print('No specs found');
|
|
||||||
}
|
|
||||||
|
|
||||||
printNewline();
|
|
||||||
var seconds = timer.elapsed() / 1000;
|
|
||||||
print('Finished in ' + seconds + ' ' + plural('second', seconds));
|
|
||||||
printNewline();
|
|
||||||
|
|
||||||
for(i = 0; i < failedSuites.length; i++) {
|
|
||||||
suiteFailureDetails(failedSuites[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
onComplete(failureCount === 0);
|
|
||||||
};
|
|
||||||
|
|
||||||
this.specDone = function(result) {
|
|
||||||
specCount++;
|
|
||||||
|
|
||||||
if (result.status == 'pending') {
|
|
||||||
pendingCount++;
|
|
||||||
print(colored('yellow', '*'));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result.status == 'passed') {
|
|
||||||
print(colored('green', '.'));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result.status == 'failed') {
|
|
||||||
failureCount++;
|
|
||||||
failedSpecs.push(result);
|
|
||||||
print(colored('red', 'F'));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
this.suiteDone = function(result) {
|
|
||||||
if (result.failedExpectations && result.failedExpectations.length > 0) {
|
|
||||||
failureCount++;
|
|
||||||
failedSuites.push(result);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return this;
|
|
||||||
|
|
||||||
function printNewline() {
|
|
||||||
print('\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
function colored(color, str) {
|
|
||||||
return showColors ? (ansi[color] + str + ansi.none) : str;
|
|
||||||
}
|
|
||||||
|
|
||||||
function plural(str, count) {
|
|
||||||
return count == 1 ? str : str + 's';
|
|
||||||
}
|
|
||||||
|
|
||||||
function repeat(thing, times) {
|
|
||||||
var arr = [];
|
|
||||||
for (var i = 0; i < times; i++) {
|
|
||||||
arr.push(thing);
|
|
||||||
}
|
|
||||||
return arr;
|
|
||||||
}
|
|
||||||
|
|
||||||
function indent(str, spaces) {
|
|
||||||
var lines = (str || '').split('\n');
|
|
||||||
var newArr = [];
|
|
||||||
for (var i = 0; i < lines.length; i++) {
|
|
||||||
newArr.push(repeat(' ', spaces).join('') + lines[i]);
|
|
||||||
}
|
|
||||||
return newArr.join('\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
function specFailureDetails(result) {
|
|
||||||
printNewline();
|
|
||||||
print(result.fullName);
|
|
||||||
|
|
||||||
for (var i = 0; i < result.failedExpectations.length; i++) {
|
|
||||||
var failedExpectation = result.failedExpectations[i];
|
|
||||||
printNewline();
|
|
||||||
print(indent(failedExpectation.message, 2));
|
|
||||||
print(indent(failedExpectation.stack, 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
printNewline();
|
|
||||||
}
|
|
||||||
|
|
||||||
function suiteFailureDetails(result) {
|
|
||||||
for (var i = 0; i < result.failedExpectations.length; i++) {
|
|
||||||
printNewline();
|
|
||||||
print(colored('red', 'An error was thrown in an afterAll'));
|
|
||||||
printNewline();
|
|
||||||
print(colored('red', 'AfterAll ' + result.failedExpectations[i].message));
|
|
||||||
|
|
||||||
}
|
|
||||||
printNewline();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ConsoleReporter;
|
|
||||||
};
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
function getJasmineRequireObj() {
|
|
||||||
if (typeof module !== 'undefined' && module.exports) {
|
|
||||||
return exports;
|
|
||||||
} else {
|
|
||||||
window.jasmineRequire = window.jasmineRequire || {};
|
|
||||||
return window.jasmineRequire;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getJasmineRequireObj().console = function(jRequire, j$) {
|
|
||||||
j$.ConsoleReporter = jRequire.ConsoleReporter();
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user