Puppet: значение переменной в тестовом файле - PullRequest
0 голосов
/ 29 января 2019

Я пишу несколько тестов для кукол, и в моем файле init_spec.rb я хочу использовать переменную, которая объявлена ​​в файле default_facts.yml.Как я могу импортировать значение этой переменной, не объявляя его в файле init_spec.rb.

Заранее спасибо!

1 Ответ

0 голосов
/ 29 января 2019

Как правило, вы сможете получить доступ к этим данным внутри объекта RSpec.configuration.

Предположим, у вас есть файл фактов по умолчанию, например:

▶ cat spec/default_facts.yml 
# Use default_module_facts.yml for module specific facts.
#
# Facts specified here will override the values provided by rspec-puppet-facts.
---
concat_basedir: "/tmp"
ipaddress: "172.16.254.254"
is_pe: false
macaddress: "AA:AA:AA:AA:AA:AA"

Вы можете обратиться к этомуданные в ваших тестах, такие как:

it 'ipaddress default fact' do
  expect(RSpec.configuration.default_facts['ipaddress']).to eq '172.16.254.254'
end

(я, конечно, предполагаю, что ваш файл фактов по умолчанию был настроен правильно, например, PDK .)

Есливместо этого вам просто нужен общий способ доступа к данным в любом произвольном файле YAML, вы также можете сделать это:

▶ cat spec/fixtures/mydata.yml 
---
foo: bar

Тогда в ваших тестах вы можете написать:

require 'yaml'
mydata = YAML.load_file('spec/fixtures/mydata.yml')

describe 'test' do
  it 'foo' do
    expect(mydata['foo']).to eq 'bar'
  end
end
...