2010-10-04 29 views
5

Tôi đã cài đặt growl + rspec + autotest trên máy tính windows 7 của tôi. Từ dấu nhắc lệnh, khi tôi gõ 'rspec spec /' nó không hoạt động. Các bài kiểm tra sẽ chỉ chạy nếu tôi sử dụng 'rake spec /' + 'autotest'.Bắt Rspec + autotest làm việc trên windows

Ngoài ra, tôi đang chạy các thử nghiệm này: http://railstutorial.org/chapters/static-pages#code:default_pages_controller_spec (nghĩa là rất, rất nhỏ) và chúng mất 8,11 giây.

Chúng cũng không thành công khi tôi chạy chúng - mặc dù chúng không có trong ví dụ. Tôi đã làm tất cả mọi thứ hướng dẫn nói với tôi, vấn đề là hướng dẫn không đi quá sâu vào việc cài đặt rspec trên một máy Windows. Nó đưa ra một liên kết, nhưng thậm chí sau đó bạn phải phân loại các hướng dẫn với nhau.

Các lỗi tôi nhận được 'Failure/Error: Unable to find C to read failed line [31mundefined methord get' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x48336c0>'

Lỗi thứ hai là rất tương tự như vậy.

Tôi cũng đã cài đặt Growl đúng cách, bởi vì tôi nhận được thông báo rằng có hai lỗi.

Có ai có thể giúp tôi không?

+0

marcamillion, khi bạn có cơ hội, bạn có thể nhận xét với các phiên bản chính xác của ruby, đường ray, rspec và tự động mà bạn thấy vấn đề này không? Tôi sẽ cố gắng tái sản xuất nó với sự ổn định mới nhất của từng cái này, nhưng chỉ trong trường hợp tôi muốn biết các phiên bản của bạn. – carols10cents

Trả lời

1

Tôi chưa tìm thấy bản sửa lỗi cố định nào hoạt động, nhưng dường như nó đã sửa lại vấn đề đường dẫn - điều gì đó đang làm nhòe đường dẫn cửa sổ và nó bị hỏng. Tuy nhiên, có một công việc xung quanh:

Trong vòng của bạn mô tả, trước khi 'get' gọi, đặt này:

bao gồm RSpec :: Rails :: ControllerExampleGroup

Dưới đây là mẫu mã sử dụng một tạo Rails spec cho một bộ điều khiển. Lưu ý rằng nó ở đầu phạm vi:

require 'spec_helper' 

describe PagesController do 
    include RSpec::Rails::ControllerExampleGroup 

    describe "GET 'home'" do 
    it "should be successful" do 
     get 'home' 
     response.should be_success 
    end 
    end 

    describe "GET 'contact'" do 
    it "should be successful" do 
     get 'contact' 
     response.should be_success 
    end 
    end 

end 

Có một sửa chữa Tôi thấy rằng thay đổi đối với spec_helper (trong trường hợp Rails), nhưng tôi không thể làm cho nó hoạt động.

EDIT: Nghiên cứu thêm một chút cho thấy đây là sự cố với autospec - công việc này sẽ hoạt động nếu bạn chỉ sử dụng rspec, nhưng sẽ không hoạt động với tự động. Tôi đã không thể tìm thấy một giải pháp cho việc này, tuy nhiên.

+0

Yeh ... Tôi đang sử dụng autotest :( – marcamillion

2

Tôi đã làm một chút googling, và theo this thread on the rspec ruby forumthis closed rspec-rails issue, đây là một vấn đề với rspec-ray đã được cố định.

Tôi đang chạy Ruby 1.9.2p136 trên Windows 7 bằng cách sử dụng đường ray 3.0.3.

Đây là những gì Gemfile tôi trông như thế, trong đó cho thấy các phiên bản của rspec và rspec-ray mà tôi đã sử dụng:

source 'http://rubygems.org' 

gem 'rails', '3.0.3' 
gem 'sqlite3-ruby', :require => 'sqlite3' 

group :development do 
    gem 'rspec-rails', '2.4.1' 
end 

group :test do 
    gem 'rspec', '2.4.0' 
    gem 'webrat', '0.7.1' 
end 

tôi nói "trông giống như" bởi vì khi tôi đã cố gắng để chạy máy phát điện đường ray rspec , đây là những gì tôi nhận:

C:\Ruby\sample_app>rails generate rspec:install 
    create .rspec 
    create spec 
    create spec/spec_helper.rb 
Could not find "autotest" in any of your source paths. Your current source paths 
are: 
C:/Ruby/sample_app/lib/templates/rspec/install 
C:/Ruby/192-stackoverflow/lib/ruby/gems/1.9.1/gems/rspec-rails-2.3.0/lib/generators/rspec/install/templates 

Vì vậy, sau đó tôi đã thêm Autotest để Gemfile của tôi (và đã bó cài đặt lại), sau đó cố gắng ray tạo rspec: cài đặt một lần nữa và nó làm việc không có lỗi. Vì vậy, đây là những gì Gemfile của tôi trông giống như bây giờ:

source 'http://rubygems.org' 

gem 'rails', '3.0.3' 
gem 'sqlite3-ruby', :require => 'sqlite3' 

group :development do 
    gem 'autotest' 
    gem 'rspec-rails', '2.4.1' 
end 

group :test do 
    gem 'rspec', '2.4.0' 
    gem 'webrat', '0.7.1' 
end 

Và phiên bản của autotest mà cài đặt này là 4.4.6:

C:\Ruby\sample_app>bundle show autotest 
C:/Ruby/192-stackoverflow/lib/ruby/gems/1.9.1/gems/autotest-4.4.6 

Sau đó tôi tạo bộ điều khiển theo hướng dẫn trong hướng dẫn:

$ rails generate controller Pages home contact 

Và tôi đã có thể chạy cả hai "Autotest exec bó" và "rspec đặc tả /" mà không nhận lỗi mà bạn đang xem:

C:\Ruby\sample_app>bundle exec autotest 
loading autotest/rspec2 
bundle exec C:\Ruby\192-stackoverflow\bin\ruby -S C:/Ruby/192-stackoverflow/lib/ruby/gems/1.9.1/gems/rspec-core-2.4.0/bin/rspec --tty 'C:/Ruby/sample_app/spec/controllers/pages_controller_spec.rb' 
.. 

Finished in 23.04 seconds 
2 examples, 0 failures 
# I killed autotest with CTRL-c at this point 
Interrupt a second time to quit 
Terminate batch job (Y/N)? y 
Terminate batch job (Y/N)? y 


C:\Ruby\sample_app>rspec spec/ 
.. 

Finished in 23.11 seconds 
2 examples, 0 failures 

Tôi cũng tiếp tục với hướng dẫn, viết thông số kỹ thuật cho trang Giới thiệu, trong khi autotest đang chạy và nó đang chạy trên các thay đổi của tôi mà không gặp bất kỳ sự cố nào.

Vì vậy, hãy thử:

  1. Đang cập nhật Gemspec của bạn để trông giống như 2 một của tôi được đăng ở đây
  2. Chạy 'bó cài đặt'
  3. Chạy 'Autotest exec bó'

và Cho tôi biết nếu nó hiệu quả. Tôi sẽ kiểm tra lại!

1

Tôi nghĩ rằng điều này có thể giúp những người có thể gặp khó khăn bây giờ mà tất cả các đá quý đã được cập nhật khá nhiều (đặc biệt đối với những người sử dụng Ruby on Rails 3 hướng dẫn):

tôi đã có thể làm việc này sử dụng phiên bản mới nhất của tất cả các đá quý:

My Gemfile:

source 'https://rubygems.org' 

gem 'rails', '3.2.6' 
gem 'jquery-rails' 

gem 'sqlite3', :group => [:development, :test] 
gem 'pg', :group => :production #This is so Heroku will work 

group :development do 
    gem 'rspec-rails' 
end 

group :test do 
    gem 'rspec' 
    gem 'webrat' 
    gem 'spork-rails' #Use this is only if you want to use spork 
end 

Hãy chắc chắn rằng bạn dọn dẹp rspec nếu bạn đã có một phiên bản cũ (bằng Ruby on Rails 3 hướng dẫn, ví dụ) : https://stackoverflow.com/a/4433217/911133

Để sử dụng Autotest làm theo hướng dẫn ở đây: https://github.com/svoop/autotest-growl

Lưu ý rằng cài đặt tiếng gầm-cho-cửa sổ là một phần của thỏa thuận đó và tiếng gầm gừ là không cần thiết: http://www.growlforwindows.com/

tập tin .autotest của bạn có thể ở một trong hai nơi

1) thư mục HOME của bạn, đó là (ví dụ):

C:\users\joeblow\.autotest 
.210

2) gốc đường ray ứng dụng (điều này sau đó sẽ hoạt động chỉ ứng dụng đó)

tập tin .autotest của tôi trông như thế này:

require 'autotest/growl' 
require 'autotest/restart' 
require 'autotest/timestamp' 

Autotest.add_hook :initialize do |autotest| 
    autotest.add_mapping(%r%^spec/(requrests)/.*rb$%) do 
|filename, _| 
filename 
end 
end 

Autotest::Growl::clear_terminal = false 

Hãy chắc chắn rằng bạn đã thực hiện một 'bó cài đặt'

Sau đó chạy Growl cho cửa sổ (trình đơn bắt đầu hoặc bắt đầu trên cửa sổ khởi động)

chạy autotest trong dòng lệnh và bạn nên làm tốt!

c:\users\joeblow\workspace\Rails\MyRailsProject> autotest 
Các vấn đề liên quan