2017-03-29 4 views
0

J'ai essayé d'écrire rspec pour l'une de mes ressources remote_file. Mais je n'ai pas réussi à le faire.
Mon concept utilise remote_file, il devrait télécharger un fichier distant qui est un fichier zip. Qu'est-ce qui se passe est rspec attend plus après Il téléchargé à distance.impossible de résoudre le problème rspec pour une ressource de fichier distant

C'est ma déclaration de ressources:

remote_file zip_file_location do 
    source http://google.com 
    mode '0754' 
    action :create 
end​ 

C'est mon test rspec:

it 'creates a remote_file ' do 
    expect(chef_run).to create_remote_file(::File.join(Chef::Config[:file_cache_path], 'sonarqube-5.6.6.zip')) 
end 

Répondre

0

Ceci est votre ressource

remote_file 'sonarqube-5.6.6.zip' do 
source 'http://google.com/' 
action :create 
mode 00755 
end 

ce qui est rspec pour votre ressource

it 'creates a remote_file ' do 
    expect(chef_run).to create_remote_file('sonarqube-5.6.6.zip').with(
     source: "http://google.com", 
     mode: 00755 
) 
end 

Si vous voulez avoir une valeur de configuration à partir des attributs/default.rb pour l'emplacement de votre fichier enregistré, vous devez railler dans votre fichier rspec:

describe 'lecturio_ds::webfrontend' do 
    context 'When all attributes are default, on an unspecified platform' do 
    let(:chef_run) do 
    ChefSpec::SoloRunner.new do |node| 
     node.set['file_cache_path'] = '/tmp' 
    end.converge(described_recipe) 
    end 
# place for your spec 
end 

et après que vous pouvez le vérifier create_remote_file('/tmp/sonarqube-5.6.6.zip').

Je ne comprends pas pourquoi vous utilisez dans votre fichier rspec File.join là.

+0

@gig je donne le chemin du fichier distant où il doit être installé – pandey

+0

Rspec est comme les tests unitaires pour votre code, il n'y a pas de fichier réel terminé dans votre répertoire de désir. – glg

0

Pour quelques raisons, cela me travaillait, je modifié mon code en chemin donnant pour le fichier à distance qui m'a aidé à résoudre rspec attendre exactement l'emplacement du fichier zip

cela m'a aidé à résoudre rspec

remote_file 'Download zip file'do 
 
Path zip_file_location 
 
source http://google.com 
 
mode '0754' 
 
action :create 
 
end​ 
 

 

 
it 'creates a remote_file ' do 
 
expect(chef_run).to create_remote_file('Download remote file') 
 
end