Node.js環境およびブラウザでも動作するノードパッケージはほとんどありません。これで、2つの個別のテスト(環境ごとに)ができました。 npm test
コマンドだけでこれらのテストを実行する最良の方法は何ですか?また、これらのパッケージをtravisに追加したいと思います。
mocha
とmocha-phantomjs
を使用しています。
ノードテストコマンド
node ./node_modules/mocha/bin/mocha ./test/node/index.js --reporter spec
ブラウザテストコマンド
node ./node_modules/mocha-phantomjs/bin/mocha-phantomjs ./test/browser/index.html
私が試したもの:
npm test
スクリプトに追加しますnpm test
スクリプトでノードコマンドをテストし、ブラウザーテスト用のカスタムスクリプトを作成します。これらの2つのコマンド(npm test
およびnpm run-script test-browser
)をtravis.ymlに配列として追加するよりも。npm test
スクリプトでテストし、ブラウザーテストをnpm posttest
コマンドに追加します。 Travis.ymlはスクリプトを1つだけ持つことになり、ユーザーも1つのスクリプトを実行する必要があります(誰もが満足しています)。私は次が好きです:
"scripts": {
"test": "npm run test-node && npm run test-browser",
"test-node": "mocha -R spec ./test/node/index.js",
"test-browser": "mocha-phantomjs ./test/browser/index.html"}
&&
は、最初のパスが成功した場合にのみ2番目を実行し、必要に応じて個別に実行できます。 npmは常にグローバルではなく relative mocha (node_modules内)を使用するため、mocha
とmocha-phantomjs
を直接呼び出すだけで害はありません。 mochaの保釈用の-b
オプションを使用すると、さらに効率的になります。エラーが発生するとすぐに終了します。
npm
でkarma
を構成するための情報を探してここに来ました。 @ dankohn's answer は次のように適応できます。
"scripts": {
"test": "npm run test-node && npm run test-browser",
"test-node": "karma run",
"test-browser": "karma start --single-run"
}
これが他の誰かの助けになることを願っています。
npm-run-all
パッケージも使用できます。
npm install npm-run-all --save-dev
"scripts": {
"test": "npm-run-all test-mocha test-mocha-phantomjs",
"test-mocha": "mocha ./test/node/index.js --reporter spec",
"test-mocha-phantomjs": "mocha-phantomjs ./test/browser/index.html"
}
mocha
とmocha-phantomjs
のローカルコピーを実行します。 Twitter bootstrapは開発にこのライブラリを使用します。