1

Symfony 3 アプリケーションの受け入れテストを作成しようとしていますが、うまくいきません。常に1つのエラーが表示されます:

AdminFamilyTestCest: 自分のサイトの管理者\ファーム ページをテスト テスト tests\acceptance\AdminFamilyTestCest.php:testFamilyPage ステップ タイトルで "Family" を確認できます Failed Failed asserting that
/admin/families/ --> 「C:\wamp64\www\farm\vendor\symfony\phpunit-bridge\SymfonyTestsListener.php」によって 77 行目で送信されます。 (500 Internal Server Error) OK サポートが必要ですか? 「C:\wamp64\www\farm\vendor [コンテンツが長すぎて表示できません。「C:\wamp64\www\farm\tests/_output\」ディレクトリの完全な応答を参照してください。 ] --> 「#logout」が含まれています。

シナリオの手順:

  1. $I->see("#logout")
  2. $I->canSeeInTitle("家族")
  3. $I->amOnPage("/admin/families/")
  4. $I->click("ログイン")
  5. $I->fillField("_password","admin")
  6. $I->fillField("_username","admin")

失敗!テスト: 1、アサーション: 3、失敗: 2。

短いメッセージ:ヘッダーが既に送信されているため、セッションを開始できませんでした。

私のテストのコード:

class AdminFamilyTestCest
{
    public function testFamilyPage(AcceptanceTester $I)
    {
        $I->wantToTest('Admin\Farm page of my site');
        $I->amOnPage('/login');
        $I->see('Log in');
        $I->fillField('_username', 'admin');
        $I->fillField('_password', 'admin');
        $I->click('Log in');
        $I->amOnPage('/admin/families/');
        $I->canSeeInTitle('Family');
        $I->see('#logout');
        $I->amOnPage('/logout');
        $I->amOnPage('/login');
        $I->seeInTitle('Welcome!');
    }
}

テストは非常に簡単ですが、なぜエラーが発生するのかわかりません。

4

1 に答える 1

3

問題の根本的な原因は、コードの一部が header() 関数を使用して出力を直接送信していることです。

Codeception の Symfony モジュールを使用できるようにするには、すべての出力とヘッダーを Symfony 応答オブジェクトを使用して設定する必要があります。それが達成できない場合、別のアプローチは PhpBrowser または WebDriver モジュールを使用することです。

于 2016-10-03T22:03:49.283 に答える