Как проверить, установлен ли msi с определенной версией с помощью serverspec?

Мы пытаемся проверить установку приложения с помощью ServerSpec в Windows. Я написал следующие строки в рубиновом файле (с помощью 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). Как это сделать в спецификации сервера?


person Samselvaprabu    schedule 11.08.2016    source источник
comment
Не могли бы вы уточнить, что вы имеете в виду под MSI?   -  person Simone Carletti    schedule 11.08.2016
comment
@SimoneCarletti Это пакет установщика Windows.   -  person Samselvaprabu    schedule 12.08.2016
comment
@SimoneCarletti Я попробовал кое-что и изменил свой вопрос.   -  person Samselvaprabu    schedule 12.08.2016


Ответы (1)


Ознакомьтесь с документацией по адресу: 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, то ответ — нет.

person Matt Schuchard    schedule 12.08.2016
comment
какой предмет внутри ожидать? У Msi нет темы.. Это название продукта? - person Samselvaprabu; 13.08.2016
comment
Субъект в этом блоке кода разрешается в 'ApplicationCorePackage', т. е. в аргумент метода RSpec. - person Matt Schuchard; 13.08.2016