Grunt

2013-04-26 20 views
6

ile çalıştırıldığında QUnit modülünü belirtim Gelişim sırasında (CI'dan ayrı) QUnit testlerimi çalıştırmak için Grunt, PhantomJS ve "watch" eklentisini kullanıyorum. Bu modülün testlerinin odaklandığı kod üzerinde çalışırken özel bir QUnit modülüne odaklanmayı isterim. QUnit'i tarayıcıda çalıştırırken çalıştırılacak bir modül belirtebilirim (tüm testlere karşı).Grunt

Soru şu ki, Grunt qunit görevine sadece belirli bir modülü çalıştırmasını söyleyebilir miyim?

Açık olmak gerekirse

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

UPDATE Ben modüller oluşturulur çalıştırmak istediğini,: Ben gibi benim Gruntfile, bir şeyi değiştirmek zorunda kalmamak için ben bir komut satırı argümanı düşünüyorum bir test paketi kullanarak QUnit en module() yöntemi:

yukarıdaki örnekte
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"); 
}); 

bu kod bütün bir test paketi, ancak ortaya çıkan html testi dosyasında aşağı modül "grubu a" ya çalıştırmak için bir damla olsun ya modül "grup b" (QUnit'in UI'sine göre). İstediğim, program aracılığıyla, grunt qunit göreviyle belirli bir modülü çalıştırmak istediğimi belirtmek. Böyle hırıltı-qunit için yapılandırma kurarsanız

cevap

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', 
     ] 
     } 
    } 
    } 
    ... 

Benim uygulanabilir bir geçici çözüm bir modül filtre seçeneğini tanımlamak olabileceğini düşünüyorum

+0

iken gerçek, ben daha genel bir şey bulmak için umuyordum (sizin gibi görünüyor OP ... grumpf vardır). Temel olarak, test paketime bir modül eklediğimde, bunun için yeni bir modül hedefi oluşturmaya gitmek istemiyorum. Ancak gönderdiğiniz için teşekkürler. – jakerella

+0

Eh, '/ test 'içinde görünen bir görev yapabilir ve her alt dizin için bir modül yapılandırır, sonra bunları yürütmek için sıraya alır ve süzmek için bir modül bağımsız değişken alır. – Stuart

+0

Evet, ancak QUnit'in modülünü çalıştırabilmek için daha çok bahsediyorum. Burada sahip olduğunuz, bu rolde hareket eden farklı html test süitlerinin oluşturulmasıdır. Yine de istediğim, yeni oluşturulan bir html dosyası değil, test paketinde bildirilen modülü çalıştırabilmektir. – jakerella

0

grunt qunit:module1 gibi bireysel bir modül çalıştırabilir, Varsa, URL'lere ekleyin. ardından kullanmadan Gruntfile.js

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

böyle şey: bu sadece bir modül için çalışacağını

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

Not. Belki de (test edilmedi), modülü yerine filter sorgu paramını kullanabilir ve bunları gruplayabilmek için modüllerinizi filtreyle eşleşecek şekilde adlandırabilirsiniz.

Not: Birden çok modül çalıştırmak, QUnit'in destekleyeceği bir şey değildir.

Referanslar:

+0

Kesinlikle bu daha uygulanabilir bir çözüm gibi görünüyor, ben bu projeye geri döndüğümde bunu deneyeceğim. – jakerella