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');