2013-04-26 9 views
6

私は開発中(CIとは別に)にQuuntテストを実行するためにGrunt、PhantomJS、および "watch"プラグインを使用しています。特定のQUnitモジュールに焦点を当てたいと思っていますが、そのモジュールのテストに集中しているコードを作業しています。ブラウザでQUnitを実行すると、(すべてのテストに対して)実行するモジュールを指定できます。Gruntで実行する場合、QUnitモジュールを指定してください

問題は、特定のモジュールだけを実行するようにGrunt qunitタスクに指示できますか?

を明確にするため

~$ grunt qunit --module="test this stuff, test that stuff" 

UPDATE私はモジュールで作成された実行したいのか、私のような私のGruntfile、何かを変更する必要がないように、私は、コマンドライン引数を考えていますテストスイート使用してQUnitのmodule()方法:

上記の例で
module("group a"); 
test("a basic test example", function() { 
    ok(true, "this test is fine"); 
}); 
test("a basic test example 2", function() { 
    ok(true, "this test is fine"); 
}); 

module("group b"); 
test("a basic test example 3", function() { 
    ok(true, "this test is fine"); 
}); 
test("a basic test example 4", function() { 
    ok(true, "this test is fine"); 
}); 

、このコードはすべて1つのテストスイートであるが、結果のHTMLテストファイルで、私はダウンモジュール「グループA」のいずれかを実行するために、ドロップを取得したり、モジュール "グループb" (QUnitのUIを通じて)。私が望むのは、プログラムで、特定のモジュールをgrunt qunitタスクで実行するように指定することです。あなたはこのようなうなり声-qunitのためにあなたの設定を設定した場合

答えて

0

grunt.initConfig({ 
    qunit: { 
    module1: { 
     options: { 
     urls: [ 
     'http://localhost:8000/test/module1/foo.html', 
     'http://localhost:8000/test/module1/bar.html', 
     ] 
     } 
    }, 
    module2: { 
     options: { 
     urls: [ 
     'http://localhost:8000/test/module2/foo.html', 
     'http://localhost:8000/test/module2/bar.html', 
     ] 
     } 
    } 
    } 
    ... 

あなたは、私が生き回避策は、モジュールフィルタオプションを定義することができると思い

+0

本当、私はより一般的な何かを見つけることを期待していたが。基本的には、テストスイートにモジュールを追加するときに、新しいモジュールターゲットを作成する必要はありません。しかし、投稿していただきありがとうございます。 – jakerella

+0

さて、 '。/ test'を見て、サブディレクトリごとにモジュールを設定し、実行のためにキューに入れるタスクを作って、modules引数を使ってフィルタをかけることができます。 – Stuart

+0

はい、私は、QUnitの 'module'sを実行できるということに言及しています。ここであなたが持っているのは、その役割を果たすさまざまなhtmlテストスイートの作成です。私が望むのは、新しく作成されたhtmlファイルではなく、テストスイートで宣言されたモジュールを実行できることです。 – jakerella

0

grunt qunit:module1のような個々のモジュールを実行することができ、それが存在する場合は、URLに追加してください。それを使用してGruntfile.js

var moduleFilter = ''; 
if (grunt.option('module')) { 
    moduleFilter = '?module=' + grunt.option('module') 
} 

でこのよう 何か:これが唯一つのモジュールのために働くことを

grunt.initConfig({ 
    qunit: { 
    options: { 
     ... 
     urls: [ 
      'http://localhost:3000/qunit' + moduleFilter 
     ] 
    } 
    } 
}); 

注意。 モジュール( )の代わりにfilterクエリパラメータを使用し、フィルタにグループ化するためにモジュールに名前を付けることができます(テストされていない可能性があります)。

注:複数のモジュールを実行することは、QUnitがサポートするものではありません。

参考文献:

+0

これは確かに実行可能なソリューションのように見えますが、私がこのプロジェクトに戻ったときに試してみます。 – jakerella

関連する問題