ruby - 为什么 serverspec 连接到本地主机而不是远程主机

标签 ruby serverspec

我的 serverspec 示例,使用 serverspec-init 进行设置,然后我生成了这个简单的测试文件 ./spec/altspf01/sample_spec.rb

require 'spec_helper'

describe command( '/bin/hostname -s' ) do
   its(:stdout) { should match /atlspf01/ }
end

我希望它通过 ssh 连接到远程主机 (atlspf01) 并检查其主机名 (atlspf01)。相反,它连接到本地主机 (ltipc682)。

  1) Command "/bin/hostname -s" stdout should match /atlspf01/
     Failure/Error: its(:stdout) { should match /atlspf01/ }
       expected "ltipc682\n" to match /atlspf01/
       Diff:
       @@ -1,2 +1,2 @@
       -/atlspf01/
       +ltipc682

我做错了什么?

此处所有代码:https://gist.github.com/neilhwatson/a3f4a26ad8cf27d62307

最佳答案

Serverspec 的规范应该通过 rake 运行。否则,规范不知道目标主机。

但是,如果您希望通过 rspec 运行它,您可以使用以下解决方法:

env TARGET_HOST='atlspf01' rspec spec/atlspf01/sample_spec.rb

希望这对您有所帮助。

关于ruby - 为什么 serverspec 连接到本地主机而不是远程主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30803645/

相关文章:

ruby - 数字在另一个数字的 5% 以内

ruby - 警告 : previous definition of Variable was here - Ruby

ruby-on-rails - 在 RoR 中缓存昂贵的查询结果

ruby-on-rails - Rails 6 中的 protect_from_forgery?

ruby - rspec/serverspec 服务测试总是失败

ssh - 集成 Terraform 和 Serverspec

ruby - 即使失败也继续进行多主机测试

ruby-on-rails - 为什么我们在 Rails 的 new action 下声明 @page = Page.new?