3
Meine Anforderung ist, dass ich ein Dienstprogramm ausführen muss, das in anderen Benutzer installiert ist, und ich muss die von dieser Sitzung zurückgegebene Ausgabe überprüfen und überprüfen. Beispiel:Wie verwende ich Serverspec, um das in anderen Benutzern installierte Dienstprogramm zu testen?
- Ich installierte Java als srijava Benutzer
- Jetzt in Serverspec ich den Befehl schrieb die Java-Version zu testen (Angenommen, die
java -version
läuft nur in diesem Benutzer und nicht als root). - Wenn ich
su srijava
verwende, dann bekomme ich nicht die Ausgabe zurück in die Root-Sitzung zurückgegeben und der Test schlägt fehl. - Wenn ich ohne
su srijava
laufen dann mein Dienstprogramm wird einen Fehler werfen , dass der Benutzer nicht SriJava ist
Code mit su
:
describe command('su srijava ; cd /app/java; ./java --version') do
its(:stdout) { should contain('1.7') }
end
-Code ohne su
:
describe command('cd /app/java; ./java --version') do
its(:stdout) { should contain('1.7') }
end
Wenn kein Empfänger AFAIK nicht veraltet ist, ist es das 'object.should' das geschlagen wurde. – coderanger
@coderanger Ich habe nichts über etwas veraltet gesagt. Worauf beziehen Sie sich? –
Sie sagten "Rspec 2" und "obsolete", ich denke, weil Sie die beiden Formen der Verwendung von 'sollten' verwechselt. Der Receiverless ist immer noch in Rspec 3 vorhanden und nicht veraltet (und wird in allen Serverspec-Beispielen verwendet). Daher solltest du diesen Teil der Antwort entfernen, da er falsch ist :) – coderanger