私は最初のテストを書くために機能テストについてSymfony documentationに従いましたが、いくつか問題があります。Symfonyの機能テストは失敗しますが、同じリクエストがブラウザで機能します
をしかし、私はシェルでphpunit -c app/
を実行すると、私は失敗を取得:私はブラウザを介して取得レスポンスが良い作品。私は別のものをしようとした場合
<?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());
}
}
:コントローラ\ MeterAPIControllerTest \
1) AppBundleの\テスト:: testGetAllVariables は500試合これはコードである200
期待主張失敗しました。テストアサーション、私も失敗を取得します。
// Assert that the "Content-Type" header is "application/json"
$this->assertTrue(
$client->getResponse()->headers->contains(
'Content-Type',
'application/json'
)
);
EDIT
私はapp/logs/test.log
でphpunit
を実行すると、私はPHPの例外を取得:
を[2016年3月31日夜3時25分21秒] request.CRITICAL:キャッチされないPHP例外 Doctrine \ Common \ Persistence \ Mapping \ MappingException: "無効なマッピング ファイル 'AppBundle.Entity.EM2Meter.orm.yml'がクラス 'AppBundle \ Entity \ EM2Meter'です。" (オブジェクト) /アプリケーション/MAMP/htdocs/iso50k1_tst_symfony/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php 行86 {"例外": "[オブジェクト] (Doctrine \ Common \ Persistence \マッピングの\ MappingException(コード:0):クラス ため 無効なマッピング・ファイル 'AppBundle.Entity.EM2Meter.orm.yml' 'AppBundle \エンティティ\ EM2Meter' /アプリケーション/ MAMP/htdocsに/ iso50k1_tst_symfony /ベンダー/ドクトリンで/共通/ libに/ドクトリン/共通/永続/マッピング/ MappingException.php:86) "} []
私はこれをどのように修正することができますか?
はあなたが正しいポートに要求してよろしいですか? – DevDonkey
@DevDonkeyはい、要求は正しいです。 – Francesco
本当ですか?私はあなたが新しいクライアントをインスタンス化するときに指定しない限り、デフォルトではポート80になります。 – DevDonkey