非常に厚い質問ですが、Codeceptionのコンソールに独自のデバッグメッセージを出力する方法はありますか?純粋にテスト自体をデバッグするためのアサーションとは関係のないメッセージを意味します(たとえば、通常のPHPウェブサイト)の変数var_dump()
私はすでにvar_dump()
、echo
およびprint
を試しましたが、役に立ちませんでした。 WebDebug
のmakeAResponseDump()
を使用しても必要な結果が得られないため、xdebugのようなデバッガーを実行しなくても変数のコンテンツを表示できるようにしたいだけです。
私はヘルパークラスを使用して問題を回避する方法を見つけたようです:
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で混乱させたくないので、概念的に正しい解決策がある場合は提出してください
デバッグ を参照してください
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
\Codeception\Util\Debug::debug($this->em);die();
--debug
フラグを使用してCodeceptionを実行します。
または、次のような冗長性制御コマンドを使用できます。
codecept run -vvv
各v
は、出力の詳細度を高めます(デフォルトでは非常に静かです)。
デフォルトでは、Codeceptionはエラーがあったと表示しますが、詳細を表示しません。ただし、 このブログ投稿 を追加すると--debugにエラーが詳細に表示されます。
codecept run --debug
短いバージョンはcodecept run tests/acceptance/SomeCest.php -d
-dは、手順とデバッグを表示します