是否可以在 Chef InSpec 的其他资源中使用一种资源?
例子:
describe command('su srijava') do
describe file ('/app/java/latest') do
it{ should exist }
end
end
它会引发如下错误:
`method_missing': undefined method `file' for RSpec::ExampleGroups::CommandSuSriava:Class (NoMethodError)
实际上我想要做的是我需要运行一个安装在其他用户中的实用程序,我必须检查从该会话返回的输出并验证它。例子 :
- 我以srijava用户身份安装了 java
- 现在在 Inspec 中,我编写了测试 Java 版本的命令(假设
java -version
仅在该用户中运行,而不是以root身份运行)。 - 如果我使用
su srijava
,那么我不会将输出返回到根会话并且测试失败 - 如果我没有运行,
su srijava
那么我的实用程序将抛出用户不是SriJava的错误
代码su
:
describe command('su srijava ; cd /app/java; ./java --version') do
its('stdout') { should match('1.7') }
end
没有的代码su
:
describe command('cd /app/java; ./java --version') do
its('stdout') { should match('1.7') }
end
我怎样才能做到这一点?