2

Grunt を使い始めてとても楽しかったのですが、最善の行動方針がわからない状況に遭遇しました。

tl;dr

タスクを中止せずにうなり声を出すことはできますか? grunt --force はそれを行いますが、強制オプションをすべてのタスクに適用します。

問題: (grunt-contrib-jasmine からの) jasmine を含むタスクの実行時に、少なくとも 1 つの単体テストを含む仕様が見つからない場合 (つまりit("does stuff, function () {});)、警告がスローされ、タスク全体が中止されます。

コード

サイトを構築するために使用しているタスクは次のとおりです。

grunt.registerTask('build', ['clean', 'sass', 'images', 'favicons', 'lint', 'minify', 'jasmine', 'hashify']);

ジャスミンのタスク構成は次のとおりです。

jasmine: {
        testdev: {
            src: folders.js.src + '/**/*.js',
            options: {
                'specs': folders.spec.src + '/*Spec.js',
                'helpers': folders.spec.src + '/*Helper.js'
            }
        },
        //etc etc, more targets for minified code testing and istanbul coverage
}

これらの賢明な解決策はありますか?

オプション 1) grunt --force を使用できますが、本当にタスクを失敗させたい他のプロセスに影響するため、使用することに消極的です。

オプション 2) 警告しますが、失敗しないでください。Grunt には、タスクを中止しない STDOUT 警告がありますか?

オプション 3) プラグインを fork し、jasmine タスクだけにオプション 'force' を追加して続行することもできますが、それでもコンソールに警告が記録されます。

オプション 4) Grunt は、jasmine を実行する前に空のダミー仕様が見つからない場合、空のダミー仕様を作成します。これは私には少し不格好に思えます。

私がまだ考えていないより良い解決策があるかもしれません。

前もって感謝します。

4

1 に答える 1

0

Testemをご覧ください。別の単体テストの質問でこれに答えましたwatchが、それについての良いところは、テストのタスクのようなものです。コードを更新すると、実行され、問題が発生し、コンソールに (および実行するブラウザーを介して) ログが記録されます。

また、ブラウザーを使用してテストを実行するため、プロジェクトのコードの横に、成功/失敗したテストの数を表示するタブを表示できます。すなわちTestem (60/60)

https://github.com/airportyh/testem

これをビルドプロセスの一部としても実行したい場合は、grunt-testem があります。このタスクを実行する前に testem ランナーを終了するように注意してください。終了しないと失敗します。お役に立てれば。:-)

于 2013-10-17T18:51:07.233 に答える