6

Travis CI を使用してビルド ステータスを監視するアプリ ( https://github.com/idmillington/dendry ) があります。私はイスタンブールを使用してカバレッジ レポートを一般化し、これを Coveralls に送信して、README のカバレッジ ボタンを生成したいと考えています。

これらすべてを機能させることができます。しかし...

ローカルで実行する場合npm test、カバーオールにカバレッジ データを送信したくありません。私は通常npm test、コミットごとに数十回実行しています。しかし、私が押して Travis がその仕事をするとき、Travis に私の代わりに報道を更新してもらいたいのです。

package.json に次のようなものを含めることができます。

"scripts": {
    "test": "./node_modules/.bin/istanbul test ./node_modules/.bin/_mocha",
}

これはローカルでは問題なく、カバーオールを更新しませんが、Travis もカバーオールを更新しません。または私はすることができます:

"scripts": {
    "test": "./node_modules/.bin/istanbul test ./node_modules/.bin/_mocha && ./node_modules/coveralls/bin/coveralls.js < ./coverage/lcov.info",
}

これは Travis には最適ですが、ローカルで実行するたびにデータを Coveralls にプッシュしようとしますnpm test

私が知る限り、Travis にnpm test.

潜在的なユーザーや貢献者に、使用してテストすることを忘れないように頼むつもりはありません

$ npm run-script test-local

特に、npm testカバーオールの正しい秘密鍵なしで実行するとアップロードエラーが生成されるためです。

ここで正しい動作を取得する方法はありますか?

4

1 に答える 1

6

結局のところ、答えは驚くほど単純でした。Travis では、実行時に好きなスクリプトを呼び出すことができるので、これを.travis.ymlファイルに追加しました。

script: npm run-script test-on-travis

だからpackage.json私は定義することができます:

"scripts": {
    "test": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha",
    "test-on-travis": "./node_modules/.bin/istanbul cover --report lcovonly ./node_modules/.bin/_mocha && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"
}

すべてが正常に動作します。

于 2014-08-06T21:01:00.280 に答える