端末を使ってkarma/jasmine経由で一度に1つのテストを実行するのが好きなようです。これが正しければ、これは私が1つのファイルテストを実行するために行うことです。
注:私はカルパをスプールアップするためにgulpを使用しますが、これはまだグローバルカルマを使用するためには有効です。
ここに私のgulpの方法もあります。私karma.config.jsで
gulp.task('karma', function (done) {
karma.start({
configFile: __dirname + '/karma.conf.js'
}, done);
});
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
// Note the **setFilesUpForTesting** function below. Just change this.
files: setFilesUpForTesting(),
... the rest of file
} // end of module!!!!!
- >今モジュールの下に、同じkarma.config.jsにファイルには、追加、次の
// ------------------------------------------------------------------ >
// Below code is for running either single or all test files.
// To run a single test, just pass in the test file name like so...
// If the test file name was rs-test-me-now_test.js
// To spool up Karma you would enter
// gulp karma --single-test=rs-test-me-now
// To just run all tests
// gulp karma
var fixedPath = [
'public/js/jquery.js',
'public/js/jquery-ui.min.js',
'public/js/foundation.min.js',
'public/js/angular.min.js',
'public/js/angular-mocks.js',
'public/js/angular-route.min.js',
'public/js/angular-sanitize.min.js',
'public/js/angular-cookies.js'
// all the files you want to include when tests run. I removed most of mine, but left some for reference.
];
var baseTestPath = 'public/test/'; // This is the path from root to your test/spec folder that contains all your tests.
function setFilesUpForTesting(){
fixedPath.push(testPath());
return fixedPath;
}
function testPath(){
return singleTestPath() || fullTestPath();
}
function fullTestPath(){
// If your root folder was butter, and all your tests were labeled
// like my_file_spec.js, and all your specs were in a folder under root
// called bread, then the path below would be
// 'butter/bread/**/*_spec.js' Got it?
return 'public/test/**/*_test.js'; // change this to suit your path.
}
function singleTestPath(){
var passedArgument = process.argv.filter(function(item){ if(/--single-test=/.test(item)){return item; }});
if(isEmpty(passedArgument)){ return false; }
return baseTestPath + '**/*' + fileName(passedArgument) + '_test.js';
// change above to fit your path.
}
function fileName(argument){
if(!argument){ return; }
return argument[0].replace('--single-test=', ''); // Change single-test if you want to.
}
function isEmpty(array){
return array.length === 0;
}
テストを実行するときは、次のコマンドを実行します。
単一ファイルテスト
一気カルマ--single-テスト用
=テスト・ミー今
// when test-me-now_test.js is the file name.
// and root/pulblic/test/ has all my test files and test folders.
// or root/bread/butter/ and file is called test-me-now_spec.js as in the other example I gave above.
ホープこれは誰かに役立ちます。あなたがそれを起動して実行することができない場合、質問をしてください。
UPDATEは
私は、コマンドラインからカルマを使用し、これも同様にがぶ飲みを使用した場合、上述したように動作します。
カルマは、あなたがkarma.config.jsは、上記のファイルを実装している場合、あなたが今、これを行うことができ、コマンドラインからアクセス可能である場合
...
注:私はカルマを使用する必要がはない実行を開始、
karma start (will run all tests)
// or for a single test file
karma start --single-test=my-test-file-name // but without the _test.js or _spec.js whatever you call your files. I had reasons for doing this, but you can change the functions above to accept the complete file name if needed.
注:ALSできる
o --single-test = で " - "の後の文言を変更して、私が共有したkarma.config.js情報を更新してください。
これもほとんどの答えではありませんが、私は」私はちょうど興味があります。私は非常に遅いバーチャルマシン(1コア、6GBのRAM、Win7)で2秒未満でランダムにいくつかの角度、DOM操作と非同期待機を含む600以上のかなり重いテストを実行します。あなたのテストのパフォーマンスをチェックすることを考えなかったのですか?テストを実行するのにかかる時間を定義してください。 –
テストコードにはwebsocket操作が含まれています。私はカスタムメッセージングスキームを持っていますが、これはテスト対象のユニットであり、それらを嘲笑する方法はありません。クライアントは、遅延を構築したクライアントと、特定のネットワーキング動作をシミュレートするために遅延を組み込んだサーバと通信します。つまり、2つのクライアントから同時に操作を実行しようとすると競合状態になります。残念ながら、それらのテストは、テストバックエンドサーバーでレースを避けるために、連続して実行する必要もあります。とにかく、これは質問に関連していません。私はカルマ+ジャスミンがTDDワークフローを提供していないと信じるのは難しいと思う。 – Dyna
FYI;私はmochaに切り替え、nodeJSベースのmochaランナーを使用しています。これにより、cmdlineレベルで '--grep'フラグを渡すことで単一のテストを実行できます。カルマ+ジャスミンの物語は残念です。( – Dyna