运行 测试时,ServerSpec 在 Windows 7 上失败
ServerSpec failing on Windows 7 when running tests
我最近尝试为 Windows 使用 Ruby 2.1.6 创建一个 ServerSpec 作业。但是,使用 the following GitHub repo 处的代码,出现以下错误。
C:\Users\PD028300\Desktop\serverspec_test\windows_spec
λ rake spec
C:/Ruby/Ruby21-x64/bin/ruby.exe -I'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-support-3.2.2/lib';'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-core-3.2.3/lib' 'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-core-3.2.3/exe/rspec' --pattern 'spec/localhost/*_spec.rb'
DL is deprecated, please use Fiddle
File "C:/Windows/System32/drivers/etc/hosts"
should be file (FAILED - 1)
content (FAILED - 2)
Failures:
1) File "C:/Windows/System32/drivers/etc/hosts" should be file
On host `localhost'
Failure/Error: it { should be_file }
TypeError:
no implicit conversion of Symbol into Integer
uname -s
MINGW32_NT-6.1
# ./spec/localhost/hosts_spec.rb:4:in `block (2 levels) in <top (required)>'
2) File "C:/Windows/System32/drivers/etc/hosts" content
On host `localhost'
Failure/Error: it(:content) { should match /localhost/ }
expected File "C:/Windows/System32/drivers/etc/hosts" to match /localhost/
Diff:
@@ -1,2 +1,2 @@
-/localhost/
+File "C:/Windows/System32/drivers/etc/hosts"
# ./spec/localhost/hosts_spec.rb:5:in `block (2 levels) in <top (required)>'
Finished in 5.82 seconds (files took 0.6677 seconds to load)
2 examples, 2 failures
Failed examples:
rspec ./spec/localhost/hosts_spec.rb:4 # File "C:/Windows/System32/drivers/etc/hosts" should be file
rspec ./spec/localhost/hosts_spec.rb:5 # File "C:/Windows/System32/drivers/etc/hosts" content
C:/Ruby/Ruby21-x64/bin/ruby.exe -I'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-support-3.2.2/lib';'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-core-3.2.3/lib' 'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-core-3.2.3/exe/rspec' --pattern 'spec/localhost/*_spec.rb' failed
这是否与我要描述的文件有关,因为它是 Windows 机器上的主机文件?
回去重新创建ServerSpec文件,还是不行。重新阅读教程 http://serverspec.org/tutorial.html and https://github.com/serverspec/serverspec/blob/master/WINDOWS_SUPPORT.md 后,我在 spec_helper.rb 中添加了 OS 系列设置,它开始工作了。
spec_helper.rb 的最终结果是:
require 'serverspec'
set :backend, :cmd
set :os, :family => 'windows'
现在我制定的规范生效了!只需确保需要 spec_helper
我最近尝试为 Windows 使用 Ruby 2.1.6 创建一个 ServerSpec 作业。但是,使用 the following GitHub repo 处的代码,出现以下错误。
C:\Users\PD028300\Desktop\serverspec_test\windows_spec
λ rake spec
C:/Ruby/Ruby21-x64/bin/ruby.exe -I'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-support-3.2.2/lib';'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-core-3.2.3/lib' 'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-core-3.2.3/exe/rspec' --pattern 'spec/localhost/*_spec.rb'
DL is deprecated, please use Fiddle
File "C:/Windows/System32/drivers/etc/hosts"
should be file (FAILED - 1)
content (FAILED - 2)
Failures:
1) File "C:/Windows/System32/drivers/etc/hosts" should be file
On host `localhost'
Failure/Error: it { should be_file }
TypeError:
no implicit conversion of Symbol into Integer
uname -s
MINGW32_NT-6.1
# ./spec/localhost/hosts_spec.rb:4:in `block (2 levels) in <top (required)>'
2) File "C:/Windows/System32/drivers/etc/hosts" content
On host `localhost'
Failure/Error: it(:content) { should match /localhost/ }
expected File "C:/Windows/System32/drivers/etc/hosts" to match /localhost/
Diff:
@@ -1,2 +1,2 @@
-/localhost/
+File "C:/Windows/System32/drivers/etc/hosts"
# ./spec/localhost/hosts_spec.rb:5:in `block (2 levels) in <top (required)>'
Finished in 5.82 seconds (files took 0.6677 seconds to load)
2 examples, 2 failures
Failed examples:
rspec ./spec/localhost/hosts_spec.rb:4 # File "C:/Windows/System32/drivers/etc/hosts" should be file
rspec ./spec/localhost/hosts_spec.rb:5 # File "C:/Windows/System32/drivers/etc/hosts" content
C:/Ruby/Ruby21-x64/bin/ruby.exe -I'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-support-3.2.2/lib';'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-core-3.2.3/lib' 'C:/Ruby/Ruby21-x64/lib/ruby/gems/2.1.0/gems/rspec-core-3.2.3/exe/rspec' --pattern 'spec/localhost/*_spec.rb' failed
这是否与我要描述的文件有关,因为它是 Windows 机器上的主机文件?
回去重新创建ServerSpec文件,还是不行。重新阅读教程 http://serverspec.org/tutorial.html and https://github.com/serverspec/serverspec/blob/master/WINDOWS_SUPPORT.md 后,我在 spec_helper.rb 中添加了 OS 系列设置,它开始工作了。
spec_helper.rb 的最终结果是:
require 'serverspec'
set :backend, :cmd
set :os, :family => 'windows'
现在我制定的规范生效了!只需确保需要 spec_helper