2010-10-04 114 views
5

我在Windows 7机器上安装了growl + rspec + autotest。在命令提示符下,当我键入'rspec spec /'时,它不起作用。只有使用'rake spec /'+'autotest'时,测试才会运行。获取Rspec + autotest在windows上工作

此外,我正在运行这些测试:http://railstutorial.org/chapters/static-pages#code:default_pages_controller_spec(即非常非常平凡),他们需要8.11秒。

当我运行它们时它们也会失败 - 即使它们不在示例中。我已经完成了教程告诉我的所有内容,问题在于本教程并未深入到在Windows机器上安装rspec。它提供了一个链接,但即使如此,你还是必须把指令放在一起。

我得到的错误是'Failure/Error: Unable to find C to read failed line [31mundefined methord get' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x48336c0>'

第二个错误是非常相似的。

我也正确安装了咆哮,因为我收到了一个通知,指出有两个故障。

任何人都可以帮助我吗?

+0

marcamillion,当你有机会的时候,你能评论一下你看到这个问题的ruby,rails,rspec和autotest的确切版本吗?我将尝试用它们中的每一个的最新稳定版来重现它,但以防万一我想知道您的版本。 – carols10cents 2011-01-13 00:51:17

回答

1

我还没有找到一个永久性的修复工程,但显然它归结为一个路径问题 - 某些东西正在消耗Windows路径,并且会中断。然而,有一个解决办法:

在您的描述,前“得到”打电话,把这个:

包括的RSpec ::滑轨:: ControllerExampleGroup

下面是一个使用生成的Rails规范的示例代码一个控制器。请注意,这是在范围的开头:

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 

有我见过一个修复程序建议更改spec_helper(在Rails的情况下),但我无法得到它的工作。

编辑:多一点研究表明这是一个自动调整问题 - 如果你只是使用rspec,这个工作将工作,但不会与自动测试一起工作。但是,我一直无法找到解决方案。

+0

叶......我正在使用自动测试:( – marcamillion 2010-10-04 18:12:02

2

我做了一些Google搜索,根据this thread on the rspec ruby forumthis closed rspec-rails issue,这是rspec-rails的问题,已经修复。

我在使用rails 3.0.3的Windows 7上运行Ruby 1.9.2p136。

这是我的Gemfile看起来,这表明我用的是RSpec的和RSpec护栏的版本:

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 

我说“看起来像”,因为当我试图运行rspec的轨道发生器,这就是我的了:

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 

于是我加入自动测试我的Gemfile(并没有捆绑重新安装),然后试图轨生成RSpec的:重新安装,并没有错误工作。所以这是我的Gemfile看起来像现在:

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 

和自动测试的版本,这是安装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 

然后我创建了控制器的指示教程:

$ rails generate controller Pages home contact 

我能没有得到您的错误运行两个“捆绑EXEC自动测试”和“rspec的投机/”看到:

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 

我还继续在本教程中,关于页书写规范,同时自动检测正在运行,这是对我的变化没有任何问题运行。

所以请尝试:

  1. 更新您的Gemspec到类似于我的第二一个在这里
  2. 发布运行 '包安装'
  3. 运行 '捆绑EXEC自动测试'

和让我知道这是否有效。我会检查回来!

1

我认为这可能会帮助那些谁可能是现在所有的宝石都被更新了不少(尤其是使用Ruby on Rails的3教程的)遇到麻烦:

我能得到这个工作使用所有宝石的最新版本:

我的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 

确保你清理rspec的,如果你已经有了一个较旧的版本(通过使用Ruby on Rails的3教程,例如) : https://stackoverflow.com/a/4433217/911133

要使用自动测试,按照指示在这里:https://github.com/svoop/autotest-growl

注意,在安装咆哮换窗户是交易的一部分,咆哮是需要:http://www.growlforwindows.com/

你.autotest文件即可在两个地方

1)你的主目录,这是(例如)一个:

C:\users\joeblow\.autotest 

2)Rails应用程序根目录(这将然后操作仅针对该应用程序)

我.autotest文件看起来像这样:

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 

确保你已经做了“包安装”

然后运行Growl for windows(开始菜单或在Windows启动时启动)

在命令行中运行autotest,你应该很好走!

c:\users\joeblow\workspace\Rails\MyRailsProject> autotest 
相关问题