ich bin neu in phpunit testen und hat einen sehr einfachen test auf status code.phpunit test läuft, seiten laden im browser scheitert in Symfony 2
Der Test besteht, wenn ich laufe:
bin\phpunit -c app src\AppBundle\Tests\Controller\StarLinX\TravelControllerTest.php
PHPUnit 4.6.10 by Sebastian Bergmann and contributors.
Configuration read from C:\PhpstormProjects\dir\app\phpunit.xml.dist
.
Time: 6.03 seconds, Memory: 20.00Mb
OK (1 test, 1 assertion)
Aber wenn ich die Seite im Browser geladen wird, wird eine Ausnahme mit dem Statuscode-Rendering den Zweig Datei geworfen 500.
ich vielleicht dachte, das war ein Cache-Problem, also habe ich den Cache in --env = dev, prod und test gelöscht.
Wie behebe ich diesen Fehler?
Dies ist meine Test-Datei:
namespace AppBundle\Tests\Controller\StarLinX;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class TravelControllerTest extends WebTestCase {
public function testGET() {
// Create a new client to browse the application
$client = static::createClient();
// get the page
$crawler = $client->request('GET', '/travel/aaaaa');
$this->assertEquals(200, $client->getResponse()->getStatusCode(), "Unexpected HTTP status code for GET /travel/aaaaa");
}
}
Dies ist der Fehler, die ausgelöst wird, wenn in der Entwickler-Umgebung ausgeführt wird:
An exception has been thrown during the rendering of a template ("Notice: Array to string conversion")
So nach einer wenig mehr Analyse, finde ich, dass der Fehler um {{ weatherInfo }}
, die {{ weatherInfo.now }}
sein sollte. Dies führt zu einem Fehler beim Ausführen der Entwicklungsumgebung. In der Produktion zeigt Zweig einfach Array
an.
Ist das normales Verhalten?
Das einzige Problem mit Ihren hinzugefügten Tests ist, dass die Seite immer noch bestehen. Warum wirft Zweig einen Fehler für ein Array in Dev, aber nicht in prod? – ScottGutman
@ScottGutman * Das einzige Problem mit Ihren hinzugefügten Tests ist, dass die Seite noch bestehen würde * Die 2 letzten Behauptungen sollten fehlschlagen, wenn ein Fehler auftritt. –
@ScottGutman In prod, Twig Fehler ausblenden, weil der Debug-Modus aktiviert ist (es ist besser, Ausnahmen zu verstecken als * die Seite zu brechen). Aber Sie sollten den Fehler in der Protokolldatei 'app/logs/prod.log' sehen. –