有没有一种方法可以使用 rspec-serverspec 测试在部署期间是否安装了特定版本的 java 或 tomcat?

Is there a way to test whether a particular version of java or tomcat is installed during deployment using rspec-serverspec?

我有一个使用 puppet 构建的环境。 我打算写一些 rspec-ruby 脚本,一旦 puppet 构建完成就可以执行,以测试是否创建了所有目录、包、用户和角色。

What I would like is to test using rspec whether the particular version of Java and Tomcat (ex for tomcat: 9.0.17) is installed during the puppet build.

What I was doing so far was to test whether the directory is present for tomcat or java by including their version number in the directory name as well like the following:

describe file('/opt/tomcat/9.0.17') do
  it { should be_directory }
end

除了这个还有别的方法吗? 或者喜欢我们测试包安装的方式?

在 Stack Overflow 上有关于如何检查这些应用程序版本的相关问题:

  • Tomcat

但是您可能遇到的问题是,对于 运行 Java 命令(两者都需要)的 Serverspec,您可能需要已经知道 Java 命令的路径, 这取决于 Java and/or Tomcat.

的版本

因此,正如您已经在做的那样,使用目录很可能是最简单的解决方案。

(这也是我所做的,例如在这个项目中here。)