Я все еще быстро набираю скорость в Puppet и rspe c и все такое, но ...
В настоящее время у нас есть CI runner, который тестирует код нашего модуля Puppet с использованием Docker контейнер работает на Linux. Что ж, теперь мы углубляемся в использование Windows -specifi c функций Puppet, и наши тесты не проходят. Поэтому нам интересно, есть ли способ игнорировать тесты, если платформа, на которой они выполняются, имеет значение Linux?
Например, если нам нужно запустить наши модульные тесты для нашего кода, который управляет локальными группами (https://puppet.com/docs/pe/2018.1/managing_windows_configurations.html#manage_local_groups), есть ли способ, чтобы, когда мы запускаем его локально на наших Windows устройствах разработки, он работал, но когда он запускается на нашем (Linux) CI runner, он пропускает этот конкретный тест?
Для каждого запроса приведен пример кода, который мы собираемся использовать для управления локальной группой:
class my_repo::profile::windows::remote_desktop_users (
Array $members = ['MyDomain\MyUserAccount', 'MyDomain\ARandomDomainGroup'],
) {
group{'Set local Remote Desktop Users memberships':
ensure => present,
name => 'Remote Desktop Users',
members => $members,
auth_membership => false
}
}
Примечание. Мы используем Шаблон профиля роли
Код выше, похоже, работает. Он просто взрывается, когда наши модульные тесты запускаются через наш CI:
describe 'my_repo::profile::windows::remote_desktop_users' do
on_supported_os.select { |_, f| f[:os]['family'] == 'windows' }.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }
it { is_expected.to compile }
end
end
end
Спасибо