Question très épaisse, mais existe-t-il un moyen d'imprimer vos propres messages de débogage sur la console dans Codeception? Je parle de messages qui n'ont rien à voir avec des assertions, uniquement pour déboguer les tests eux-mêmes (par exemple, comme vous le feriez avec var_dump()
une variable d'un site Web PHP normal)
J'ai déjà essayé var_dump()
, echo
et print
mais en vain. L'utilisation de WebDebug
makeAResponseDump()
ne produit pas non plus les résultats requis. Je veux simplement pouvoir voir le contenu de ma variable sans avoir à exécuter un débogueur comme xdebug .
Je semble avoir trouvé un moyen de contourner le problème en utilisant une classe d'assistance:
class WebHelper extends \Codeception\Module
{
public function seeMyVar($var){
$this->debug($var);
}
}
et en appelant la classe en tant que telle:
$foo = array('one','two');
$I->seeMyVar($foo);
alors je reçois la sortie de débogage que je recherche
I see my var "lambda function"
Array
(
[0] => one
[1] => two
)
J'accepterai cela comme une solution temporaire, mais j'aimerais garder mes assertions nettes et ne pas les encombrer de var_dumps mis à niveau pour tester des fonctions. Si quelqu'un a une solution conceptuellement correcte, veuillez l'envoyer.
Voir Débogage qui dit
Vous pouvez imprimer toutes les informations contenues dans un test à l'aide de la fonction codecept_debug.
Et je l’utilise dans ma classe * Cept:
codecept_debug($myVar);
Votre sortie de débogage n'est visible que lorsque vous exécutez avec --debug (-v ne l'affiche pas, mais -vv et -vvv font):
codecept run --debug
Et la sortie ressemblait à:
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();
et lancez Codeception avec --debug
.
Ou vous pouvez utiliser les commandes de contrôle de verbosité comme:
codecept run -vvv
où chaque v
augmente la verbosité de la sortie (très silencieux par défaut).
Par défaut, Codeception dit qu'il y a une erreur mais ne la montre pas en détail. Cependant, selon cet article de blog added --debug montre les erreurs en détail.
codecept run --debug
La version courte serait codecept run tests/acceptance/SomeCest.php -d
- d vous montrera les étapes et le débogage