Ich versuche Behath für BDD Tests zu benutzen. Wenn ich einen Build auf Jenkins ausführe, möchte ich, dass Behat den eingebauten Web-Server von PHP öffnet und ihn dann schließt, nachdem er die Tests ausgeführt hat. Wie geht das?Wie starte ich einen PHP eingebauten Webserver bevor ich einen Test starte und schließe ihn wenn der Test ausgeführt wurde
Grundsätzlich muss ich laufen:
php -S localhost:8000
In meinem BDD Tests, die ich versucht:
/**
* @Given /^I call "([^"]*)" with email and password$/
*/
public function iCallWithPostData($uri)
{
echo exec('php -S localhost:8000');
$client = new Guzzle\Service\Client();
$request = $client->post('http://localhost:8000' . $uri, array(), '{"email":"a","password":"a"}')->send();
$this->response = $request->getBody(true);
}
Aber dann beim Laufen Behat es ohne Meldung stecken bleibt.
können Sie es manuell von der Maschine ausführen, von denen Jenkins läuft? – Amey
versuchen, false zurückzugeben –
Behat Kontext ist nicht der richtige Ort, um den Server zu starten. Du würdest nicht versuchen, Apache auf diese Weise anzufangen, richtig? –