2015-03-05 17 views
12

Sadece rake ile teknik özellikleri çalıştıran bir uygulama var, ancak bu görevin nerede ve nasıl tanımlandığını bilmiyorum. Lib/görevlerde görev yok. Gemfile aitNeden Rails uygulamasında varsayılan komisyon görevi teknik özelliklerini çalıştırıyor?

Bölüm:

group :test do 
    gem 'capybara' 
    gem 'guard-rspec' 
    gem 'rspec-rails' 
    gem 'database_cleaner' 
    gem 'launchy' 
    gem 'oauth2' 
    gem 'rack_session_access' 
    gem 'factory_girl' 
    gem 'webmock' 
    gem 'selenium-webdriver' 
end 

RSpec taşlar: Ben Rake 10.4.2 ve Rails 4.1.6 kullanıyorum

guard-rspec (4.5.0) 
rspec (3.1.0) 
rspec-core (3.1.7) 
rspec-expectations (3.1.2) 
rspec-mocks (3.1.3) 
rspec-rails (3.1.0) 
rspec-support (3.1.2) 

. Ben eklemek Ayrıca

,: "Hiçbir varsayılan görevi" Rakefile için

task :default do 
    puts 'No default task.' 
end 

, öncelikle gözlük çalıştırır ve sonra yazdırır

DÜZENLEME: Eğer Gemfile içinde rspec-rails varsa, o taş Raylar tarafından yüklenen

# Add your own tasks in files placed in lib/tasks ending in .rake, 
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 

require File.expand_path('../config/application', __FILE__) 

Rails.application.load_tasks 
+0

olası yinelenen [Rayların varsayılan önbellek görevlerini geçersiz kılma] (http://stackoverflow.com/questions/8112074/overriding-rails-default-rake-tasks) –

+0

'spec' ekleyerek rspec-raylar gibi görünüyor varsayılan görev bağımlılığı olarak: https://github.com/rspec/rspec-rails/blob/6d1b893b936e6651fbb96771fefdefff8a7627fe/lib/rspec/rails/tasks/rspec.rake#L6 – matt

cevap

22

bu satırı çalıştırır ise Rakefile ekleyin:

https://github.com/rspec/rspec-rails/blob/v3.2.1/lib/rspec-rails.rb#L19

load "rspec/rails/tasks/rspec.rake" 

hangi sırayla varsayılan sorgu görevini tanımlar:

Varsayılan tırmık görev senin Raylar app özelliklerini çalıştırır yüzden 0 https://github.com/rspec/rspec-rails/blob/v3.2.1/lib/rspec/rails/tasks/rspec.rake#L6

task :default => :spec 

.

task :default do 
    puts 'No default task.' 
end 

aslında varsayılan görevi yeniden tanımlanacak değil: Bu kodu eklendiğinde

Dahası, onu arttırır. Rake görev tanımının işleyiş biçimi, aynı görev adının her biri numaralı bildirimi, bu göreve eklenir. Bunu yeniden tanımlamaz. Sonuç olarak, "Varsayılan görev yok" sonucu ve özelliklerini görebilirsiniz.

+0

Tamam, bu mantıklı. Ama başka bir Rails uygulamasında aynı gemim var ve 'komisyon iptal edildi! 'Varsayılan' görevinin nasıl oluşturulacağını bilmiyorum. Neden komisyon görevine sahip olmadığını anlamaya çalışıyorum. –

+0

@BSeven Bunun için ayrı bir soruyu açmanızı öneririm, Rayils uygulamasının Gemfile ve Rakefile ile birlikte 'varsayılan' görevini nasıl oluşturacağımı bilmiyorum. –

İlgili konular