0

Symfony2 で Web アプリを開発しています。私のアプリケーションは、Ruby を使用してモックしたいくつかの外部サービスに接続します。これは私のルビーモックのスニペットです

#Bunch of stuff...

after do
    response['Content-type'] = 'application/json'
end

#Bunch of stuff...

get '/configure/set_result' do

    #Bunch of stuff...
    JSON.generate 'success' => true,
        "message" => "whatever"
end

私が行っている機能テストの1つで、このメソッドを呼び出します

<?php

class MyControllerTest extends WebTestCase {

    protected function setUp() {
        $this->client = static::createClient();
    }


    public function testWhatever() {

        $this->callMyMock(22);

        //Unimportant stuff

    }

    private function callMyMock($result) {

        $crawler = $this->client->request('GET', "http://localhost:5995/configure/set_result?resultCode=$result");
    }
}

問題は、ログに多くの PHP 警告が表示されることです (これにより、実際には PHPUnit の速度が大幅に低下します。これは出力の例です。

WebApp.PHPUnitTests:
     [exec] PHPUnit 3.7.19 by Sebastian Bergmann.
     [exec]
     [exec] Configuration read from C:\Work\New Products Trunk\Software\WebApp\symfony2\app\phpunit.xml.dist
     [exec]
     [exec] PHP Warning:  Unexpected character in input:  '→' (ASCII=26) state=0 in C:\Work\New Products Trunk\Soft
endor\symfony\symfony\src\Symfony\Bridge\Twig\Extension\CodeExtension.php on line 140
     [exec] PHP Stack trace:
     [exec] PHP   1. {main}() C:\_Wallet\phpunit.phar:0
     [exec] PHP   2. PHPUnit_TextUI_Command::main() C:\_Wallet\phpunit.phar:527
     [exec] PHP   3. PHPUnit_TextUI_Command->run() phar://C:/_Wallet/phpunit.phar/PHPUnit/TextUI/Command.php:129
...
...
...
...

私は何を間違っていますか?

4

1 に答える 1

0

これは、.phar ファイルから実行する場合の既知のバグです。この場合、「強調表示」を行う関数はファイル名ではなく phar の内容を取得するため、予期しない入力が行われるためです。

いくつかの背景: あなたのテストは、適切にフォーマットされたスタック トレースを表示する内部の symfony ErrorHandler によって処理される例外をトリガーしている可能性があります。このフォーマットは、この警告をトリガーするものです。

この PR で修正されました: https://github.com/symfony/symfony/pull/8721/files

詳細はこの問題にあります: https://github.com/symfony/symfony/issues/7798

于 2013-10-23T08:33:53.357 に答える