如何使用serverspec检查是否安装了特定版本的msi?

How to check whether the msi with particular version installed using serverspec?

我们正在尝试使用 windows 中的 ServerSpec 验证应用程序安装。我在 ruby 文件中写了以下几行(使用 Test.rb)

require 'spec_helper'

set :backend, :cmd

set :os, :family => 'windows'

describe package('ApplicationCorePackage') do
  it { should be_installed }
end

我运行脚本是这样的

rspec 'C:\Ruby Scripts\Test.rb' --format html --out 'C:\Ruby Scripts\Test.html'

它检查正确。但我想检查特定版本的 msi(windows 安装程序包)。如何在 serverspec 中做到这一点?

查看文档:http://serverspec.org/resource_types.html#package

匹配器 be_installed 接受链 with_version。因此,使用 RSpec 3 语法我们有:

describe package('ApplicationCorePackage') do
  it { expect(subject).to be_installed.with_version('version') }
end

如果您的问题是您是否需要 by MSI 提供商的链,那么答案是您不需要。