web-dev-qa-db-ja.com

Codeceptionのコンソールへのデバッグ出力の印刷

非常に厚い質問ですが、Codeceptionのコンソールに独自のデバッグメッセージを出力する方法はありますか?純粋にテスト自体をデバッグするためのアサーションとは関係のないメッセージを意味します(たとえば、通常のPHPウェブサイト)の変数var_dump()

私はすでにvar_dump()echoおよびprintを試しましたが、役に立ちませんでした。 WebDebugmakeAResponseDump()を使用しても必要な結果が得られないため、xdebugのようなデバッガーを実行しなくても変数のコンテンツを表示できるようにしたいだけです。

38
Ayame__

私はヘルパークラスを使用して問題を回避する方法を見つけたようです:

class WebHelper extends \Codeception\Module
{
    public function seeMyVar($var){
        $this->debug($var);
    }
}

そしてそのようなクラスを呼び出す:

$foo = array('one','two');
$I->seeMyVar($foo);

次に、探しているデバッグ出力を取得します

I see my var "lambda function"
  Array
  (
      [0] => one
      [1] => two
  )

私はこれを一時的な解決策として受け入れますが、アサーションをクリーンに保ち、テスト関数にアップグレードされたvar_dumpsで混乱させたくないので、概念的に正しい解決策がある場合は提出してください

10
Ayame__

デバッグ を参照してください

Codecept_debug関数を使用して、テスト内の情報を印刷できます。

そして、私は* Ceptクラスでそれを使用しています:

codecept_debug($myVar);

デバッグ出力は、-debugで実行した場合にのみ表示されます(-vでは表示されませんが、-vvおよび-vvvでは表示されます)。

codecept run --debug

出力は次のようになりました。

Validate MyEntity table insert (MyCept) 
Scenario:
* I persist entity "AppBundle\Entity\MyEntity"

  AppBundle\Entity\MyEntity Object
  (
      [Id:AppBundle\Entity\MyEntity:private] => 1
      [Description:AppBundle\Entity\MyEntity:private] => Description
  )

 PASSED 
48
Bae
\Codeception\Util\Debug::debug($this->em);die();

--debugフラグを使用してCodeceptionを実行します。

47
sennett

または、次のような冗長性制御コマンドを使用できます。

codecept run -vvv

vは、出力の詳細度を高めます(デフォルトでは非常に静かです)。

6
Luca Tumedei

デフォルトでは、Codeceptionはエラーがあったと表示しますが、詳細を表示しません。ただし、 このブログ投稿 を追加すると--debugにエラーが詳細に表示されます。

codecept run --debug

2
bibstha

短いバージョンはcodecept run tests/acceptance/SomeCest.php -d
-dは、手順とデバッグを表示します

0
Stipe