Skip to content
← Back to rules

jest/require-top-level-describe スタイル

何をするか

テストケースおよびフックがトップレベルの describe ブロック内にあることを要求します。

なぜ問題なのか

テストとフックを describe ブロック内で整理することで、テストスイートの構造やグループ化が改善されます。これによりテスト出力の可読性が向上し、特に大きなコードベースにおいてテストの組織化に役立ちます。

このルールは、テストケース(test および it)またはフック(beforeAllbeforeEachafterEachafterAll)がトップレベルの describe ブロック内にない場合、警告を発します。

このルールに違反する不適切なコードの例:

javascript
// describe ブロックの上に位置
test("my test", () => {});
describe("test suite", () => {
  it("test", () => {});
});

// describe ブロックの下に位置
describe("test suite", () => {});
test("my test", () => {});

// フックの場合も同様
beforeAll("my beforeAll", () => {});
describe("test suite", () => {});
afterEach("my afterEach", () => {});

このルールに準拠する適切なコードの例:

javascript
// describe ブロックの上に位置
// describe ブロック内に位置
describe("test suite", () => {
  test("my test", () => {});
});

// ネストされた describe ブロック内に位置
describe("test suite", () => {
  test("my test", () => {});
  describe("another test suite", () => {
    test("my other test", () => {});
  });
});

このルールは eslint-plugin-vitest と互換性があります。使用するには、.oxlintrc.json に以下の設定を追加します:

json
{
  "rules": {
    "vitest/require-top-level-describe": "error"
  }
}

設定

このルールは、次のプロパティを持つ設定オブジェクトを受け入れます:

maxNumberOfTopLevelDescribes

型: integer

デフォルト: 18446744073709551615

テストファイル内で許可されるトップレベルの describe ブロックの最大数。

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、以下のように使用できます:

json
{
  "plugins": ["jest"],
  "rules": {
    "jest/require-top-level-describe": "error"
  }
}
bash
oxlint --deny jest/require-top-level-describe --jest-plugin

参照