我无法在人偶模块中修复验收测试。
我必须测试两个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) }
我想念什么?