Podążyłem za testami funkcjonalnymi Symfony documentation, aby napisać mój pierwszy, ale mam pewne problemy. W odpowiedzi dostaję poprzez przeglądarkę działa dobrze:Test funkcjonalny Symfony kończy się niepowodzeniem, ale to samo żądanie działa w przeglądarce
Ale kiedy biegnę phpunit -c app/
w powłoce mam awarię.
1) AppBundle \ Test \ Controller \ MeterAPIControllerTest :: testGetAllVariables Failed twierdząc, że oczekuje 500 meczów 200.
Jest to kod:
<?php
namespace AppBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class MeterAPIControllerTest extends WebTestCase
{
public function testGetAllVariables()
{
$client = static::createClient();
$crawler = $client->request(
'GET',
'/meters/121/120/variables'
);
// Assert a specific 200 status code
$this->assertEquals(200, $client->getResponse()->getStatusCode());
}
}
Gdy próbuję kolejny asercja testowa, również otrzymuję błąd.
// Assert that the "Content-Type" header is "application/json"
$this->assertTrue(
$client->getResponse()->headers->contains(
'Content-Type',
'application/json'
)
);
EDIT
Kiedy biegnę phpunit
w app/logs/test.log
otrzymuję wyjątek PHP:
[31.03.2016 15:25:21] request.CRITICAL: Uncaught PHP Wyjątek Doctrine \ Common \ Persistence \ Mapping \ MappingException: "Nieprawidłowe mapowanie plik" AppBundle.Entity.EM2Meter.orm.yml "dla klasy " AppBundle \ Entity \ EM2Meter "." pod adresem /Aplikacje/MAMP/htdocs/iso50k1_tst_symfony/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php linia 86 {"wyjątek": "[obiekt] (Doctrine \ Common \ Persistence \ Mapowanie \ MappingException (kod: 0): Nieprawidłowy plik odwzorowania "AppBundle.Entity.EM2Meter.orm.yml" dla klasy "AppBundle \ Entity \ EM2Meter" w /Applications/MAMP/htdocs/iso50k1_tst_symfony/vendor/doctrine/common/lib/Doctrine/Common/Trwałość/Mapowanie/MappingException.php: 86) "} []
Jak mogę rozwiązać ten problem?
jesteś pewien swojej wnioskiem do właściwego portu? – DevDonkey
@DevDonkey Tak, żądanie jest poprawne. – Francesco
jesteś pewien? Myślę, że przekonasz się, że jeśli nie określisz kiedy tworzysz nowego klienta, domyślnie będzie to port 80. – DevDonkey