2016-02-17 8 views
-2

Мой рецепт:ключе реестра HKEY_LOCAL_MACHINE SOFTWARE Microsoft Microsoft SQL Server Instance Names SQL не существует ошибка в chefspec

instance_names.each do |instance_name| 
    instance_name_service=instance_name.split('.')[1] 
    instance_name_service = instance_name_service == 'MSSQLSERVER'? 'MSSQLSERVER' : "MSSQL$#{instance_name_service}" 
    path="HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server\\#{instance_name}\\MSSQLServer" 
    registry_key path do 
     architecture :"#{var_architecture}" 
     values [{ 
      :name => 'AuditLevel', 
      :type => :dword, 
      :data => 3 
     }] 
     action :create 
     not_if (false) 
    end 
end 

в chefpec:

require_relative '../../spec_helper' 
require 'chefspec' 
describe 'regcheck::default' do 
    let(:chef_run) { ChefSpec::SoloRunner.new.converge(described_recipe) } 
    it 'recipe loads all the dependency files and converges successfully' do 
     chef_run 
    end 
    context 'regcheck' do 
     it 'creates or updates audit level settings for sql instances' do 
      expect(chef_run).to create_registry_key('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.SQLINSTANCE1\MSSQLServer') 
     end 
    end 
end 

И я получаю это ошибка:

Registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL does not exist error in chefspec

ответ

0

Вы должны установить ChefSpec для эмуляции платформы Windows, для registry_key ресурсов для работы ,

let(:chef_run) { ChefSpec::SoloRunner.new(platform: 'windows', version: '2012R2').converge(described_recipe) } 
+0

Спасибо coderanger, но после добавления, что я получаю эту ошибку. let (: chef_run) {ChefSpec :: SoloRunner.new (платформа: «окна», версия: «2012R2»). сходится (описано_recipe)}. Как я могу эмулировать раздел реестра в chefspec – user1994447

+0

Вы вставили неправильную вещь. – coderanger