--glob オプションで特定のディレクトリやファイルのテストを実行
Node.jsにおけるMocha.jsのテストディレクトリ指定方法
Node.jsのテストフレームワークであるMocha.jsでは、デフォルトでプロジェクトのルートディレクトリにある test
ディレクトリ内のテストファイルを実行します。しかし、テストコードを整理するために、異なるディレクトリにテストファイルを配置したい場合があります。
そこで、今回はMocha.jsでテストディレクトリを指定する方法について、3つの方法に分けて詳しく解説します。
方法1: package.jsonファイルの利用
package.jsonファイルに test
スクリプトを定義することで、テストディレクトリを指定できます。
{
"scripts": {
"test": "mocha <testディレクトリ>"
}
}
上記のように、test
スクリプトの値にテストディレクトリのパスを指定します。例えば、tests
ディレクトリ内のテストを実行したい場合は、以下のように記述します。
{
"scripts": {
"test": "mocha tests"
}
}
方法2: --recursiveオプションの利用
Mochaコマンドに --recursive
オプションを指定することで、サブディレクトリも含めてテストを実行できます。
mocha --recursive
このオプションを使用すると、test
ディレクトリ以下にあるすべてのテストファイルが実行されます。
方法3: --globオプションの利用
Mochaコマンドに --glob
オプションとテストファイルのパターンを指定することで、特定のディレクトリやファイルのテストを実行できます。
mocha --glob <テストファイルのパターン>
例えば、tests
ディレクトリ内の *.spec.js
ファイルのテストを実行したい場合は、以下のように記述します。
mocha --glob tests/*.spec.js
補足
- 上記の方法を組み合わせることも可能です。例えば、
package.json
ファイルでテストディレクトリを指定し、さらに--recursive
オプションを使用することで、そのディレクトリ以下にあるすべてのテストを実行できます。
今回紹介した3つの方法を参考に、それぞれの状況に合わせて適切な方法でテストディレクトリを指定してください。
Mocha.js テストディレクトリ指定のサンプルコード
以下のサンプルコードを実行するには、Node.jsとMocha.jsがインストールされている必要があります。
コード例
package.json
{
"scripts": {
"test": "mocha tests"
}
}
tests/math.spec.js
const assert = require('chai').assert;
describe('Math', function() {
it('1 + 1 は 2 であるべき', function() {
assert.equal(1 + 1, 2);
});
it('2 * 2 は 4 であるべき', function() {
assert.equal(2 * 2, 4);
});
});
実行方法
npm install mocha chai
npm run test
実行結果
Math
✓ 1 + 1 は 2 であるべき
✓ 2 * 2 は 4 であるべき
2 テスト 2 アサーション (0 秒)
説明
上記のサンプルコードでは、以下の方法でテストディレクトリを指定しています。
- package.jsonファイルの
test
スクリプトにテストディレクトリのパス (tests
) を指定 math.spec.js
ファイルでdescribe
とit
を使ってテストケースを定義assert
モジュールを使ってテスト結果を検証
- このサンプルコードは、基本的なテストケースを示しています。実際のプロジェクトでは、より複雑なテストケースを記述する必要があります。
- Mocha.jsには、さまざまなオプションや機能が用意されています。詳細は、Mocha.jsの公式ドキュメントを参照してください。
Mocha.js でテストディレクトリを指定するその他の方法
--require
オプションを使用すると、テストを実行する前に JavaScript ファイルを読み込むことができます。このオプションでテストディレクトリ内のファイルを指定することで、そのディレクトリをテストディレクトリとして指定できます。
mocha --require tests/setup.js
setup.js
require('mocha').setup('bdd');
// テストファイルの読み込み
require('./math.spec.js');
require('./user.spec.js');
mocha --grep tests
環境変数
MOCHA_DIR
環境変数を設定することで、テストディレクトリを指定できます。
MOCHA_DIR=tests mocha
ts-mocha
TypeScript で Mocha テストを書く場合は、ts-mocha
パッケージを使用できます。ts-mocha
は、TypeScript ファイルを自動的にコンパイルして JavaScript ファイルに変換し、Mocha で実行します。ts-mocha
の設定ファイル (tsconfig.json
) で test
フィールドを指定することで、テストディレクトリを指定できます。
{
"compilerOptions": {
/* ... */
},
"include": [
"tests/**/*.ts"
]
}
注意事項
- 上記の方法を使用する場合は、Mocha のバージョンによってオプション名が異なる場合があります。最新の情報については、Mocha の公式ドキュメントを参照してください。
Mocha.js には、さまざまな方法でテストディレクトリを指定することができます。自分に合った方法を選択して、テストを実行してください。
unit-testing node.js mocha.js