xv
v2.1.1
シンプルさと速度に重点を置いた小さな (TypeScript で約 80 行) テスト ランナー
$ xv ./src src/add.test.js: 0.103ms src/sub.test.js: 0.064ms
lowdbから抜粋。このベンチマークによると最速のテスト ランナー。
他のテスト ランナーを使用したことがある場合は、おそらくドキュメントの読み取り、構成、保守、デバッグにかなりの時間を費やしたことでしょう。
xv は非常にシンプルであるため、邪魔にならず、生産性をより速く高めることができます。実際、プロジェクトのドキュメント全体がこのページに収まります ;)
npm install xv --save-dev
テスト ファイルを作成し、Node の組み込みのassert
モジュールを使用します。
// src/add.test.jsimportassert from 'node:assert/strict'import add from './add.js'// これはプレーンな Node コードであり、xv APIexport 関数 testAdd() { assert.equal(add(1, 2), 3)}
package.json
を編集します。
{ "スクリプト": {"テスト": "xv src" } }
テストを実行します。
npm test # ./srcnpx xv 内のすべてのテスト ファイルを実行します src/add.test.js # 単一のテスト ファイルを実行します
デフォルトでは、xv は*.test.js
、 test.js
、 *.test.ts
およびtest.ts
という名前のファイルを検索します。
npm install ts-node --save-dev
{ "スクリプト": {"テスト": "xv --loader=ts-node/esm src" } }
tsc
使用して.ts
ファイルをコンパイルし、コンパイルされた.js
ファイルに対してxv
を実行します。
たとえば、コンパイルされたファイルがlib/
にあると仮定して、 tsc
の後にxv
実行するようにpackage.json
を編集します。
{ "スクリプト": {"テスト": "tsc && xv lib" } }
npm に公開する場合は、 package.json
編集してコンパイルされたテスト ファイルを除外します。
{ "ファイル": ["lib","!lib/**/*.test.js","!lib/**/test.js" 】 }
// src/add.test.jsconstassert = require('assert').strict;const add = require('./add')exports.testAdd = function() { assert.equal(add(1, 2), 3)}
xvにはウォッチモードがありません。この機能が必要な場合は、watchexec や chokidar-cli などのツールを使用して、変更があったときに xv を再実行することをお勧めします。