2009-05-19 26 views
16

Có bất kỳ lệnh nào có sẵn để tạo tất cả các tập tin spec thiếu cho các mô hình/bộ điều khiển hiện có không? Tôi có một dự án có một số mô hình đã được tạo ra với các tập tin đặc tả.Tạo Thiếu tập tin Spec cho RSpec

Trả lời

7

Bạn chỉ có thể chạy trình tạo và bỏ qua các mô hình/di chuyển/đồ đạc.

ruby script/generate rspec_model User --skip-migration --skip-fixture --skip 

Tôi đã tìm cách viết một cái gì đó để làm điều này nhưng không có bất kỳ sự quan tâm nào từ người khác.

17

Trong rspec-rails-2 được thiết kế cho Rails 3, tất cả các máy phát rspec đã được loại bỏ.

Bạn có thể giải quyết vấn đề này bằng cách chạy trình tạo mô hình đường ray. Bạn có thể thêm -s để bỏ qua bất kỳ tệp hiện có nào và --migration = false để bỏ qua việc tạo tệp di chuyển.

Giống như vậy:

rails generate model example -s --migration=false 
+0

không hoạt động trên đường ray 3.2.x – Rubytastic

+3

Làm việc cho tôi! đường ray 3.2.13 – Elmor

0

https://gist.github.com/omenking/7774140

require 'fileutils' 
namespace :spec do 

    def progress name, x, y 
    print "\r #{name}: #{x}/#{y} %6.2f%%" % [x.to_f/y * 100] 
    end 

    def generate_files name 
    kind  = name.to_s.singularize 
    collection = Dir.glob Rails.root.join('app',name.to_s,'**','*').to_s 
    root  = Rails.root.join('app',name.to_s).to_s<<'/' 
    ext  = case name 
        when :controllers then '_controller.rb' 
        when :models  then '.rb' 
       end 
    count = collection.count 
    collection.each_with_index do |i,index| 
     `rails g #{kind} #{$1} -s` if i =~ /#{root}(.+)#{ext}/ 
     progress name, index, count 
    end 
    end 

    task generate_missing: :environment do 
    generate_files :controllers 
    generate_files :models 
    end 
end 

# if you dont want certian things generated than 
# configure your generators in your application.rb eg. 
# 
# config.generators do |g| 
#  g.orm :active_record 
#  g.template_engine :haml 
#  g.stylesheets false 
#  g.javascripts false 
#  g.test_framework :rspec, 
#      fixture: false, 
#      fixture_replacement: nil 
# end 
# 
1

Nếu số lượng thiếu thông số kỹ thuật là khá nhỏ, bạn chỉ có thể chạy các rails generate lệnh cho mỗi thành phần với thiếu thông số kỹ thuật.

Khi xung đột phát sinh, chỉ cần chọn không ghi đè tệp gốc. Máy phát sẽ bỏ qua các tệp hiện có và tạo các tệp bị thiếu.

Các vấn đề liên quan