我仍然在加快 Puppet 和 rspec 以及所有这些方面的速度,但是......
我们目前有一个 CI 运行程序,它使用在 Linux 上运行的 Docker 容器测试我们的 Puppet 模块代码。好吧,我们现在正在研究使用 Puppet 的 Windows 特定功能,但我们的测试失败了。所以我们想知道如果运行测试的平台是 Linux,是否有任何方法可以忽略测试?
例如,如果我们需要对管理本地组的代码(https://puppet.com/docs/pe/2018.1/managing_windows_configurations.html#manage_local_groups)运行单元测试,有没有办法让我们运行它在我们的 Windows 开发盒本地运行,它可以工作,但是当它在我们的(基于 Linux 的)CI 运行器上运行时,它会跳过那个特定的测试?
根据请求,以下是我们希望用于管理本地组的代码示例:
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
谢谢