J'ai créé simple marionnette 4 classe et un test unitaire pour aller avec elle comme suit (après l'exécution touch metadata.json; rspec-puppet-init
tout en modules/test/
):correcte façon de commencer l'unité RSpec-marionnette teste
# modules/test/manifests/hello_world1.pp
class test::hello_world1 {
file { "/tmp/hello_world1":
content => "Hello, world!\n"
}
}
# modules/test/spec/classes/test__hello_world1_spec.rb
require 'spec_helper'
describe 'test::hello_world1' do
it { is_expected.to compile }
it { is_expected.to contain_file('/tmp/hello_world1')\
.with_content(/^Hello, world!$/) }
end
Je peux avec succès exécutez le test unitaire en exécutant rspec spec/classes/test__hello_world1_spec.rb
tandis que dans modules/test/
.
Je voudrais maintenant passer à un peu plus classe avancée qui utilise le code d'un autre module, à savoir concat
(le module a arleady été installé dans modules/concat
):
# modules/test/manifests/hello_world2.pp
class test::hello_world2
{
concat{ "/tmp/hello_world2":
ensure => present,
}
concat::fragment{ "/tmp/hello_world2_01":
target => "/tmp/hello_world2",
content => "Hello, world!\n",
order => '01',
}
}
# modules/test/spec/classes/test__hello_world2_spec.rb
require 'spec_helper'
describe 'test::hello_world2' do
it { is_expected.to compile }
# ...
end
Lorsque je tente d'exécuter ce test d'unité avec rspec spec/classes/test__hello_world2_spec.rb
tout en modules/test
je reçois un message d'erreur qui comprend:
Failure/Error: it { is_expected.to compile } error during compilation: Evaluation Error: Error while evaluating a Resource Statement, Unknown resource type: 'concat'
Je soupçonne que la cause fondamentale est que rspec
ne peut pas trouver l'autre module (s) , parce qu'il n'a pas été dit un "chemin de module".
Ma question est la suivante: comment dois-je exactement démarrer les tests unitaires, en particulier ceux qui nécessitent l'accès à d'autres modules?