Add execution time elapsed to JsApiReporter
Since this information is desired in ConsoleReporter, HtmlReporter, and now JsApiReporter, the executionTime is passed through in jasmineDone from Env instead of making each reporter compute it. Fixes #30, [Finishes #45659879]
This commit is contained in:
@@ -69,20 +69,15 @@ describe("ConsoleReporter", function() {
|
||||
});
|
||||
|
||||
it("reports a summary when done (singluar spec and time)", function() {
|
||||
var fakeNow = jasmine.createSpy('fake Date.now'),
|
||||
reporter = new j$.ConsoleReporter({
|
||||
var reporter = new j$.ConsoleReporter({
|
||||
print: out.print,
|
||||
now: fakeNow
|
||||
});
|
||||
|
||||
fakeNow.andReturn(500);
|
||||
|
||||
reporter.jasmineStarted();
|
||||
reporter.specDone({status: "passed"});
|
||||
fakeNow.andReturn(1500);
|
||||
|
||||
out.clear();
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({executionTime: 1000});
|
||||
|
||||
expect(out.getOutput()).toMatch(/1 spec, 0 failures/);
|
||||
expect(out.getOutput()).not.toMatch(/0 pending specs/);
|
||||
@@ -90,13 +85,10 @@ describe("ConsoleReporter", function() {
|
||||
});
|
||||
|
||||
it("reports a summary when done (pluralized specs and seconds)", function() {
|
||||
var fakeNow = jasmine.createSpy('fake Date.now'),
|
||||
reporter = new j$.ConsoleReporter({
|
||||
var reporter = new j$.ConsoleReporter({
|
||||
print: out.print,
|
||||
now: fakeNow
|
||||
});
|
||||
|
||||
fakeNow.andReturn(500);
|
||||
reporter.jasmineStarted();
|
||||
reporter.specDone({status: "passed"});
|
||||
reporter.specDone({status: "pending"});
|
||||
@@ -117,8 +109,7 @@ describe("ConsoleReporter", function() {
|
||||
|
||||
out.clear();
|
||||
|
||||
fakeNow.andReturn(600);
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({executionTime: 100});
|
||||
|
||||
expect(out.getOutput()).toMatch(/3 specs, 1 failure, 1 pending spec/);
|
||||
expect(out.getOutput()).toMatch("Finished in 0.1 seconds\n");
|
||||
@@ -148,7 +139,7 @@ describe("ConsoleReporter", function() {
|
||||
|
||||
out.clear();
|
||||
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
|
||||
expect(out.getOutput()).toMatch(/foo bar baz/);
|
||||
});
|
||||
@@ -160,7 +151,7 @@ describe("ConsoleReporter", function() {
|
||||
onComplete: onComplete
|
||||
});
|
||||
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
|
||||
expect(onComplete).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@@ -167,8 +167,9 @@ describe("Env (integration)", function() {
|
||||
|
||||
// TODO: something is wrong with this spec
|
||||
it("should report as expected", function() {
|
||||
var env = new j$.Env(),
|
||||
reporter = jasmine.createSpyObj('fakeReproter', [
|
||||
var fakeNow = jasmine.createSpy('fake Date.now'),
|
||||
env = new j$.Env({now: fakeNow}),
|
||||
reporter = jasmine.createSpyObj('fakeReporter', [
|
||||
"jasmineStarted",
|
||||
"jasmineDone",
|
||||
"suiteStarted",
|
||||
@@ -177,6 +178,9 @@ describe("Env (integration)", function() {
|
||||
"specDone"
|
||||
]);
|
||||
|
||||
fakeNow.andReturn(500);
|
||||
reporter.suiteDone.andCallFake(function() { fakeNow.andReturn(1500); });
|
||||
|
||||
env.addReporter(reporter);
|
||||
|
||||
env.describe("A Suite", function() {
|
||||
@@ -200,7 +204,9 @@ describe("Env (integration)", function() {
|
||||
});
|
||||
var suiteResult = reporter.suiteStarted.calls[0].args[0];
|
||||
expect(suiteResult.description).toEqual("A Suite");
|
||||
expect(reporter.jasmineDone).toHaveBeenCalled();
|
||||
expect(reporter.jasmineDone).toHaveBeenCalledWith({
|
||||
executionTime: 1000
|
||||
});
|
||||
});
|
||||
|
||||
it("should be possible to get full name from a spec", function() {
|
||||
|
||||
@@ -101,7 +101,7 @@ describe("JsApiReporter", function() {
|
||||
expect(reporter.finished).toBe(false);
|
||||
|
||||
reporter.jasmineStarted();
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
|
||||
expect(reporter.finished).toBe(true);
|
||||
});
|
||||
@@ -123,7 +123,7 @@ describe("JsApiReporter", function() {
|
||||
it("reports 'done' when Jasmine is done", function() {
|
||||
var reporter = new j$.JsApiReporter();
|
||||
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
|
||||
expect(reporter.status()).toEqual('done');
|
||||
});
|
||||
@@ -178,4 +178,22 @@ describe("JsApiReporter", function() {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("#executionTime", function() {
|
||||
var reporter;
|
||||
beforeEach(function() {
|
||||
reporter = new j$.JsApiReporter();
|
||||
});
|
||||
|
||||
it("should return the time it took the specs to run, in ms", function() {
|
||||
reporter.jasmineDone({executionTime: 1000});
|
||||
expect(reporter.executionTime()).toEqual(1000);
|
||||
});
|
||||
|
||||
describe("when the specs haven't finished being run", function() {
|
||||
it("should return undefined", function() {
|
||||
expect(reporter.executionTime()).toBeUndefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -118,23 +118,19 @@ describe("New HtmlReporter", function() {
|
||||
describe("when Jasmine is done", function() {
|
||||
it("reports the run time", function() {
|
||||
var env = new jasmine.Env(),
|
||||
fakeNow = jasmine.createSpy('fake Date.now'),
|
||||
container = document.createElement("div"),
|
||||
getContainer = function() { return container; },
|
||||
reporter = new jasmine.HtmlReporter({
|
||||
env: env,
|
||||
getContainer: getContainer,
|
||||
now: fakeNow,
|
||||
createElement: function() { return document.createElement.apply(document, arguments); },
|
||||
createTextNode: function() { return document.createTextNode.apply(document, arguments); }
|
||||
});
|
||||
|
||||
reporter.initialize();
|
||||
|
||||
fakeNow.andReturn(500);
|
||||
reporter.jasmineStarted({});
|
||||
fakeNow.andReturn(600);
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({executionTime: 100});
|
||||
|
||||
var duration = container.querySelector(".banner .duration");
|
||||
expect(duration.innerHTML).toMatch(/finished in 0.1s/);
|
||||
@@ -197,7 +193,7 @@ describe("New HtmlReporter", function() {
|
||||
|
||||
reporter.suiteDone({id: 1});
|
||||
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
var summary = container.querySelector(".summary");
|
||||
|
||||
expect(summary.childNodes.length).toEqual(1);
|
||||
@@ -247,7 +243,7 @@ describe("New HtmlReporter", function() {
|
||||
});
|
||||
|
||||
reporter.initialize();
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
|
||||
var raisingExceptionsUI = container.querySelector(".raise");
|
||||
expect(raisingExceptionsUI.checked).toBe(false);
|
||||
@@ -272,7 +268,7 @@ describe("New HtmlReporter", function() {
|
||||
|
||||
reporter.initialize();
|
||||
env.catchExceptions(false);
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
|
||||
var raisingExceptionsUI = container.querySelector(".raise");
|
||||
expect(raisingExceptionsUI.checked).toBe(true);
|
||||
@@ -298,7 +294,7 @@ describe("New HtmlReporter", function() {
|
||||
});
|
||||
|
||||
reporter.initialize();
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
|
||||
var input = container.querySelector(".raise");
|
||||
input.click();
|
||||
@@ -333,7 +329,7 @@ describe("New HtmlReporter", function() {
|
||||
fullName: "A Suite inner suite with another spec",
|
||||
status: "passed"
|
||||
});
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
});
|
||||
|
||||
it("reports the specs counts", function() {
|
||||
@@ -378,7 +374,7 @@ describe("New HtmlReporter", function() {
|
||||
fullName: "A Suite with a spec",
|
||||
status: "pending"
|
||||
});
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
});
|
||||
|
||||
it("reports the pending specs count", function() {
|
||||
@@ -429,7 +425,7 @@ describe("New HtmlReporter", function() {
|
||||
};
|
||||
reporter.specStarted(failingResult);
|
||||
reporter.specDone(failingResult);
|
||||
reporter.jasmineDone();
|
||||
reporter.jasmineDone({});
|
||||
});
|
||||
|
||||
it("reports the specs counts", function() {
|
||||
|
||||
Reference in New Issue
Block a user