2014-11-25 3 views
0

Im пытается написать тест для удаления файла:Chefspec удалить файл с пути windowslike

test/recipes/default.rb

file 'C:/temp/1.txt' do 
    action :delete 
end 

cat spec/default_spec.rb

require_relative 'spec_helper' 

describe 'test::default' do 

#before do 
# allow(File).to receive(:exist?).and_call_original 
# allow(File).to receive(:exist?).with('C:/test/1.txt').and_return(true) 
#end 

    let(:chef_run) do 
    ChefSpec::ServerRunner.new(platform: 'windows', version: '2008R2') do |runner| 
     runner.automatic_attrs['hostname'] = 'somehost' 
    end.converge(described_recipe) 
    end 

    it 'delete scripts' do 
    expect(chef_run).to delete_file("C:/test/1.txt") 
    end 
end 

Но после того, как команда Invoke Rspec я получил:

F 

Failures: 

    1) test::default delete scripts 
    Failure/Error: expect(chef_run).to delete_file("C\:/test/1.txt") 
     expected "file[C:/test/1.txt]" with action :delete to be in Chef run. Other file resources: 

     file[C:/temp/1.txt] 

    # ./spec/default_spec.rb:29:in `block (2 levels) in <top (required)>' 

Finished in 0.64011 seconds (files took 1.27 seconds to load) 
1 example, 1 failure 

Если я установил linuxlike путь - все в порядке, также, как вы можете видеть, я пытаюсь заглушить файл. Любые идеи, что я делаю неправильно?

P.S .: Я бегу тестов на Linux, рубин 2.1, chefspec 4,1

ответ

1

кажется, что вы сделали ошибку в рецепте у вас есть C:/temp/1.txt и в тесте проверить, если файл C:/test/1.txt будет удален.

+0

О, мой бог, спасибо, его настолько простая ошибка ... – user3484021