2012-05-15 16 views
6

Zaten this question'a baktık ve şu anda tüm paketimi nasıl yürüttüğümü daha çok veya daha az yansıtıyor.Rake olmadan tam bir MiniTest paketi nasıl çalıştırılır?

Ayrıca, ben setup şu tırmık görevi ettik:

Rake::TestTask.new do |t| 
    t.name = "spec:models" 
    t.libs << "test" 
    t.pattern = "spec/models/*_spec.rb" 
end 

Ama bu time rake spec:models kullanarak çalıştırdığınızda yaklaşık 2.36 saniyede tamamlar ben, dikkat edin. Bu dizinde ruby /path/to/spec.rb kullanarak tüm bireysel testleri çalıştırırsam (tümü şu anda ActiveRecord'dan yalıtılmış değil - henüz hiç hızlı olma, yani süper hızlı), toplam kullanıcı süresi 2.36 saniyedir, ancak her dosya 0.4 alırken de fark ediyorum Baştan sona yürütmek için kullanıcı saniyeler, MiniTest tarafından bildirilen gerçek "test" süresi çok daha hızlıdır (tüm paketlerimi yükledikten sonra, 0.15-ish saniyeden daha az, 2.36 saniye içinde çalışmalıdır).

Örnek (çok spesifikasyon dosyası için):

Started 

11/11:   100% |======================================| Time: 00:00:00 

Finished in 0.02223s 
11 tests, 15 assertions, 0 failures, 0 errors, 0 skips 
ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total 

Ben Rake Her testin yürütülmesi arasındaki kütüphaneleri yeniden şüpheleniyorsanız ve bu ekstra zaman hesaba ediyor. Bunu doğrulayabilir miyim, yoksa tüm paketi Rake kullanmadan çalıştırabilir miyim? Daha önce "kullanıcı zamanı" derken

Btw, ben bu herhangi ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total

+0

Buna bir çözüm buldunuz mu? –

cevap

1

çalışacak = yüzden, tek bir test dosyasını çalıştırmak için yakut komutuna time prepending tarafından çıkarılan ilk sayıya time ruby /path/to/spec.rb bahsediyorum dosya adının sonunda bir _spec.rb ile spec dizindeki testleri ve alt dizinleri:

ruby -Itest spec/**/*_spec.rb 
+1

Hmm, bu sadece bir dosya çalıştırıyor gibi görünüyor (ruby -Itest spec/models/* _ spec.rb' ile son çıktım 5 testin tamamlandığını gösterirken "rake spec: running running" 62 testleri tamamlandı). Ne var ne yok? – neezer

+0

Matthew'ın önerisinin benim için neden işe yaramadığını bilmek istiyorum. –

+1

Sanırım muhtemelen spec/**/_ spec.rb ile ilgili alıntılara ihtiyacınız var veya kabuğunuz onu genişletecek, sadece bir dosyadan şüpheleniyorum, eğer bu notasyonu anlayan bir kabuk kullanmıyorsanız. – Ghoti

5

projenizin üst dizininde bir dosya spec.rb oluşturun:

$:<<'spec' # add to load path 
files = Dir.glob('spec/**/*.rb') 
files.each{|file| require file.gsub(/^spec\/|.rb$/,'')} 

Run it: bu sizin için çalışıyorsa istediğiniz gibi

ruby spec.rb 

, vb,

istediğiniz gibi spec.rb dosyayı yeniden adlandırmak veya daha iyi bir konuma taşımak veya yük yolları değiştirebilir
İlgili konular