2016-03-31 20 views
6

Birincisini yazmak için Symfony documentation'u sınava tabi tuttum, ancak bazı sorunlarım var.Symfony işlevsel sınaması başarısız olur, ancak aynı istek tarayıcıda çalışır

Browser response

Ama kabuğunda phpunit -c app/ çalıştırdığınızda ben bir hata alıyorum: Ben tarayıcı üzerinden almak tepkisi iyi çalışır. Başka bir denerseniz

<?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()); 
    } 
} 

: Kontrolör \ MeterAPIControllerTest \

1) AppBundle \ Testleri :: testGetAllVariables 500 maç Bu kodudur 200.

beklenen iddia Başarısız test iddiası, ben de başarısızlık alıyorum.

// Assert that the "Content-Type" header is "application/json" 
$this->assertTrue(
    $client->getResponse()->headers->contains(
     'Content-Type', 
     'application/json' 
    ) 
); 

DÜZENLEME

ben app/logs/test.log içinde phpunit çalıştırmak ben bir PHP İstisna olsun:

[2016/03/31 15:25:21] request.CRITICAL: Yakalanmayan PHP Özel Durum Doctrine \ Common \ Persistence \ Mapping \ MappingException: sınıfı 'AppBundle \ Entity \ EM2Meter' için dosyası 'AppBundle.Entity.EM2Meter.orm.yml' geçersiz eşleştirmesi. /Applications/MAMP/htdocs/iso50k1_tst_symfony/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php line 86 {"özel durum": "[object] (Doctrine \ Common \ Persistence \ Mapping \ MappingException (code: 0): 'AppBundle \ Entity \ EM2Meter' sınıfındaki 'AppBundle.Entity.EM2Meter.orm.yml' geçersiz dosya /Applications/MAMP/htdocs/iso50k1_tst_symfony/vendor/doctrine/ortak/lib/Doktrini/ortak/Devamlılık/Haritalama/MappingException.php: 86) "} []

Bunu nasıl düzeltebilirim? Sen noktası 8000 tarihinde localhost sunucuyla bağlantı symfony müşteri söylemedim

+2

vardır emin senin doğru porta talebinde: Ben testleri çalıştırmadan önce ve fonksiyonel testler için projenizi çalıştırmadan önce mevcut ortam için önbelleği temizlemek için iyi bir uygulama olduğunu düşünüyorum? – DevDonkey

+0

@DevDonkey Evet, istek doğru. – Francesco

+1

emin misin? Yeni bir istemci başlattığınızda belirtmediğiniz sürece, 80. – DevDonkey

cevap

1

Eğer müşteri örneğini, onun hala 80.

varsaymak, böyle ana bilgisayarı belirtir.

$client = static::createClient([], [ 
    'HTTP_HOST' => 'localhost:8000', 
]); 
+0

numaralı bağlantı noktasını belirttiğiniz sürece bunu bulacaksınız. Ancak maalesef bu sorunu çözmüyor. – Francesco

+0

Sunucu günlükleri ne diyor? – DevDonkey

+0

Soruyu güncelledim. – Francesco

0

Burada bir önbellek sorunu var gibi görünüyor.

$ php bin/console cache:clear --env=dev

$ php bin/console cache:clear --env=tests