diff --git a/lib/jasmine-core/jasmine-html.js b/lib/jasmine-core/jasmine-html.js index e8c5b38f..9f4f28dc 100644 --- a/lib/jasmine-core/jasmine-html.js +++ b/lib/jasmine-core/jasmine-html.js @@ -163,10 +163,18 @@ jasmineRequire.HtmlReporter = function(j$) { ) ); } - var statusBarMessage = '' + pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount); - if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); } + var statusBarMessage = ''; + var statusBarClassName = 'bar '; + + if (totalSpecsDefined > 0) { + statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount); + if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); } + statusBarClassName += (failureCount > 0) ? 'failed' : 'passed'; + } else { + statusBarClassName += 'skipped'; + statusBarMessage += 'No specs found'; + } - var statusBarClassName = 'bar ' + ((failureCount > 0) ? 'failed' : 'passed'); alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage)); var results = find('.results'); diff --git a/spec/html/HtmlReporterSpec.js b/spec/html/HtmlReporterSpec.js index c2a43534..9b8ead9a 100644 --- a/spec/html/HtmlReporterSpec.js +++ b/spec/html/HtmlReporterSpec.js @@ -387,6 +387,27 @@ describe("New HtmlReporter", function() { }); }); + it("shows a message if no specs are run", function(){ + var env, container, reporter; + env = new j$.Env(); + container = document.createElement("div"); + var getContainer = function() { return container; }, + reporter = new j$.HtmlReporter({ + env: env, + getContainer: getContainer, + createElement: function() { return document.createElement.apply(document, arguments); }, + createTextNode: function() { return document.createTextNode.apply(document, arguments); } + }); + reporter.initialize(); + + reporter.jasmineStarted({}); + reporter.jasmineDone({}); + + var alertBars = container.querySelectorAll(".alert .bar"); + expect(alertBars[0].getAttribute('class')).toMatch(/skipped/); + expect(alertBars[0].innerHTML).toMatch(/No specs found/); + }); + describe("and all specs pass", function() { var env, container, reporter; beforeEach(function() { @@ -401,7 +422,7 @@ describe("New HtmlReporter", function() { }); reporter.initialize(); - reporter.jasmineStarted({}); + reporter.jasmineStarted({ totalSpecsDefined: 2 }); reporter.specDone({ id: 123, description: "with a spec", @@ -452,7 +473,7 @@ describe("New HtmlReporter", function() { }); reporter.initialize(); - reporter.jasmineStarted({}); + reporter.jasmineStarted({ totalSpecsDefined: 1 }); reporter.specDone({ id: 123, description: "with a spec", @@ -490,7 +511,7 @@ describe("New HtmlReporter", function() { }); reporter.initialize(); - reporter.jasmineStarted({}); + reporter.jasmineStarted({ totalSpecsDefined: 1 }); var passingResult = {id: 123, status: "passed"}; reporter.specStarted(passingResult); diff --git a/src/html/HtmlReporter.js b/src/html/HtmlReporter.js index 34236493..8e44e535 100644 --- a/src/html/HtmlReporter.js +++ b/src/html/HtmlReporter.js @@ -134,10 +134,18 @@ jasmineRequire.HtmlReporter = function(j$) { ) ); } - var statusBarMessage = '' + pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount); - if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); } + var statusBarMessage = ''; + var statusBarClassName = 'bar '; + + if (totalSpecsDefined > 0) { + statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount); + if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); } + statusBarClassName += (failureCount > 0) ? 'failed' : 'passed'; + } else { + statusBarClassName += 'skipped'; + statusBarMessage += 'No specs found'; + } - var statusBarClassName = 'bar ' + ((failureCount > 0) ? 'failed' : 'passed'); alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage)); var results = find('.results');