Rspec / Beaker如何测试ssh连接失败?

时间:2018-10-17 15:22:32

标签: ssh rspec puppet beaker serverspec

我无法在人偶模块中修复验收测试。

我必须测试两个ssh连接。第一个允许,第二个不允许。

代码如下:

# Test if toto can access to client (allowed)
describe command('ssh -o "StrictHostKeyChecking no" toto@192.168.44.37 id') do
  its(:exit_status) { is_expected.to be 0 }
 end

# Test if toto can access to master (not allowed)
describe command('ssh -o "StrictHostKeyChecking no" toto@localhost id') do
  its(:exit_status) { is_expected.not_to be 0 }
end

第一次测试成功,该命令有效,返回0,这是预期的退出状态。
上面的第二项测试失败。 ssh连接失败(按预期),因为不允许用户,但测试返回错误。

以下是输出:

Failure/Error: its(:exit_status) { is_expected.not_to be 0 }
     Beaker::Host::CommandFailure:
       Host 'ipa-server-1' exited with 255 running:
        /bin/sh -c ssh\ -o\ \"StrictHostKeyChecking\ no\"\ toto@localhost\ id
       Last 10 lines of output were:
        Authentication failed.

如果我尝试使用命令ssh -o "StrictHostKeyChecking no" toto@localhost id然后echo $?,则得到255 ...

以下几行是我尝试过的几个测试,但均不起作用:

  • its(:exit_status) { is_expected.to be 255 }
  • its(:stderr) { is_expected.to match(/.*failed.*/m) }
  • its(:stderr) { is_expected.to contain(/.*failed.*/m) }
  • its(:stdout) { is_expected.to match(/.*failed.*/m) }
  • its(:stdout) { is_expected.to contain(/.*failed.*/m) }

我想念什么?

0 个答案:

没有答案