2016-06-11 9 views
0

Ich habe ein Puppet-Modul erstellt, um AWS Cloudwatch-Überwachungsskripts zu installieren und einzurichten. Das Puppet-Modul ist verfügbar here.Warum findet rspec-puppet meine Klasse nicht?

Als ich rake spec, mein Test-Suite laufen nicht mit:

rspec ./spec/classes/init_spec.rb:4 # cloudwatch with default values for all parameters should contain Class[cloudwatch] 

Ich kann nicht für das Leben von mir herauszufinden, warum dieser Test fehlschlägt. Wie repariere ich es?

Ich habe versucht, mit folgendem Inhalt ein .fixtures/yml in der Wurzel des Repo-Erstellung:

fixtures: 
    symlinks: 
    cloudwatch: "../../../../manifests" 

fixtures: 
    symlinks: 
    cloudwatch: "#{source_dir}" 

aber keine Würfel.

ich auch einen Symlink versucht haben, mit an den Manifesten Verzeichnis zu verknüpfen: https://github.com/MasterRoot24/puppet-cloudwatch/commit/932970aab085984f2cda44fba841c3bde20f7a2b

Antwort

1

Ihre erste Problem ist, sind Sie die .fixtures.yml-Datei fehlt, die den folgenden Inhalt benötigt:

fixtures: 
    symlinks: 
    cloudwatch: "#{source_dir}" 

als dokumentiert in der puppetlabs_spec_helper README.

Zusätzliche Änderungen waren erforderlich, um den Test zu bestehen, wie in der PR zu sehen ist, die ich gerade angesprochen habe here.

Als Antwort auf Ihre bearbeitete Frage, die eine Fixtures-Datei behandelt, die nicht in dem Code war, den Sie verlinkt haben, glaube ich nicht, dass Ihre Fixtures syntaktisch gültig sind; Ich glaube nicht, dass Sie mehr als einen fixtures Block angeben können. Wie auch immer, schau dir meine PR an.

+0

Er könnte auch Puppet-Check verwenden, was automatisch geschieht und bei großen Unternehmen eingeführt wird und von Power-Usern als Ersatz für puppetlabs_spec_helper verwendet wird. Offenlegung: Ich bin der Autor. –

+0

Es war mein Verständnis, dass dies durch den Symlink hier erfüllt wurde: https://github.com/MasterRoot24/puppet-cloudwatch/blob/develop/spec/fixtures/modules/cloudwatch/manifests Bin ich falsch? Ist das Code-Snippet bereit, wörtlich kopiert zu werden, oder muss ich 'source_dir' in etwas ändern? – JoeNyland

+0

Ich habe gerade Ihren Vorschlag ausprobiert und es funktioniert immer noch nicht - bitte sehen Sie das Update am Ende meiner Frage – JoeNyland