Skip to content

Latest commit

 

History

History
63 lines (45 loc) · 2.07 KB

no-exclusive-tests.md

File metadata and controls

63 lines (45 loc) · 2.07 KB

Disallow exclusive tests (mocha/no-exclusive-tests)

⚠️ This rule warns in the ✅ recommended config.

Mocha has a feature that allows you to run tests exclusively by appending .only to a test-suite or a test-case. This feature is really helpful to debug a failing test, so you don’t have to execute all of your tests. After you have fixed your test and before committing the changes you have to remove .only to ensure all tests are executed on your build system.

This rule reminds you to remove .only from your tests by raising a warning whenever you are using the exclusivity feature.

Rule Details

This rule looks for every describe.only, it.only, suite.only, test.only, context.only and specify.onlyoccurrences within the source code. Of course there are some edge-cases which can’t be detected by this rule e.g.:

var describeOnly = describe.only;
describeOnly.apply(describe);

The following patterns are considered warnings:

// bdd
describe.only("foo", function () {});
it.only("foo", function () {});
describe["only"]("bar", function () {});
it["only"]("bar", function () {});

// tdd
suite.only("foo", function () {});
test.only("foo", function () {});
suite["only"]("bar", function () {});
test["only"]("bar", function () {});

These patterns would not be considered warnings:

// bdd
describe("foo", function () {});
it("foo", function () {});
describe.skip("bar", function () {});
it.skip("bar", function () {});

// tdd
suite("foo", function () {});
test("foo", function () {});
suite.skip("bar", function () {});
test.skip("bar", function () {});

When Not To Use It

  • If you really want to execute only one test-suite or test-case because all other tests should not be executed, turn this rule off.
  • If you use another library which exposes a similar API as mocha (e.g. describe.only), you should turn this rule off, because it would raise warnings.

Further Reading