Je voudrais écrire une méthode dans ma suite de test comme suit:erreur de test unité boost C du message
void checkParams(arg1, arg2, arg3)
{
BOOST_REQUIRE(arg1==1);
BOOST_REQUIRE(arg2==2);
BOOST_REQUIRE(arg3==3);
}
Cependant, je veux écrire quelque chose à stderr si l'assertion échoue. Par exemple, si le premier assert échoue, je veux écrire: checkParams a échoué avec des arguments arg1 = 5, arg2 = 4, arg3 = 3
Écrire maintenant le message qu'il génère est juste que l'enregistrement critique n'a pas 5 == 1.
Plus généralement, je voudrais créer un stacktrace en cas d'échec afin que je puisse voir une chaîne des appels qui ont conduit à cet échec. Notez que cette méthode est appelée par toutes mes méthodes BOOST_AUTO_TEST_CASE mais n'est pas elle-même une BOOST_AUTO_TEST_CASE.
Comment faire?
Une autre question: Je sais que je peux modifier le niveau de journalisation en fournissant des paramètres de temps d'exécution,
./test --log_level=all
Comment régler le log_level du code?
Boost 1,40 ne semble pas me permettre de placer un BOOST_MESSAGE comme second paramètre (seulement une chaîne littérale). – user231536
Oups, placez BOOST_MESSAGE lorsque cela n'était pas nécessaire. Mise à jour de la réponse avec la bonne version –