完全なモックユニットテストと、一部の非同期操作が正しく返されるかどうかをチェックする統合テストを作成することに興味があります。 unit
テスト用に1つのコマンドとintegration
テスト用に1つのコマンドが欲しいので、CIツールで別々に実行できます。これを行うための最良の方法は何ですか?モカやジェストのようなツールは、物事を行う1つの方法にのみ焦点を当てているようです。
私が見る唯一のオプションは、mochaを使用し、ディレクトリに2つのフォルダを置くことです。
何かのようなもの:
__unit__
__integration__
次に、mochaにsrc
ディレクトリ内のすべての__unit__
テストを実行するように指示する方法と、すべての__integration__
テストを実行するように指示する別の方法が必要です。
考え?
Mochaは、ディレクトリ、ファイルグロブ、およびテスト名 grepping をサポートしており、テストの「グループ」を作成するために使用できます。
test/unit/whatever_spec.js
test/int/whatever_spec.js
次に、ディレクトリ内のすべてのjs
ファイルに対してテストを実行します。
mocha test/unit
mocha test/int
mocha test/unit test/int
test/unit_whatever_spec.js
test/int_whatever_spec.js
次に、特定のファイルに対してmochaを実行します。
mocha test/unit_*_spec.js
mocha test/int_*_spec.js
mocha
テストタイプとクラス/サブジェクトを説明する外部ブロックをmochaで作成します。
describe('Unit::Whatever', function(){})
describe('Integration::Whatever', function(){})
次に、mochas "grep"引数を指定して名前付きブロックを実行します-g
mocha -g ^Unit::
mocha -g ^Integration::
mocha
テスト名を使用するときは、ファイルまたはディレクトリを分離しておくと、失敗したテストのソースファイルを簡単に区別できるので便利です。
各テストコマンドをpackage.jsonscripts
セクションに保存して、yarn test:int
やnpm run test:int
などで簡単に実行できるようにします。
{
scripts: {
"test": "mocha test/unit test/int",
"test:unit": "mocha test/unit",
"test:int": "mocha test/int"
}
}