Comment puis-je configurer maven pour imprimer JUnit échec d'assertion message à la console
Je suis en utilisant la surefire plugin maven pour exécuter les tests unitaires. Ma classe de test ressemble à ceci:
public class Test1 {
@org.junit.Test
public void testThatFails(){
Assert.assertTrue("false is never true", false);
}
}
Lorsqu'un test échoue, j'attends de voir le message de "faux n'est jamais vrai", qui a été associée avec le AssertionError, mais il n'est pas imprimé sur la console. Au lieu de cela, je suis chargé de creuser autour de la surefire rapport répertoire et de le trouver (suce).
Running com.example.Test1
Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 5.799 sec <<< FAILURE!
Running com.example.Test2
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec
Running com.example.Test3
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.122 sec
Results :
Failed tests:
testThatFails(com.example.Test1)
Tests run: 12, Failures: 1, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.
Please refer to /<path-to-pom.xml>/target/surefire-reports for the individual test results.
Après la navigation de répertoire ci-dessus, je trouve la .fichier txt qui contient le message d'erreur de mon test JUnit, y compris la trace de la pile. J'aimerais voir le même message et la trace de la pile imprimée à la console pendant la phase de construction (si il obtient également ajouté à un fichier de rapport qui serait génial). Des idées?
OriginalL'auteur cyber-monk | 2011-08-10
Vous devez vous connecter pour publier un commentaire.
Il y a une certaine configuration qui permettra de spécifier s'il faut écrire les rapports de test à un fichier ou à la console:
useFile
. Par défaut, c'esttrue
.http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#useFile
Avec Maven, vous pouvez le configurer pour être
false
en incluant la section suivante dans votrepom.xml
:Cela va générer des sorties comme:
REMARQUE:
À l'aide de ce paramètre de configuration peut briser les mécanismes de reporting des serveurs CI qui montrent les échecs de tests. Serveurs CI comme TeamCity et Jenkins utiliser le
surefire-reports.txt
fichiers de montrer détaillées de l'échec du test d'informations et il semble que ce paramètre rend ces rapports ne se produit. Malheureusement, je ne pouvais pas trouver un moyen de rendre le rapport montrent dans les deux console et écrites dans un fichier.Le
.xml
fichiers peuvent être que les serveurs CI utilisent en premier lieu, vous êtes probablement en sécurité. Je n'ai pas vraiment essayer de créer un TeamCity ou Jenkins travail qui a utilisé cette option, je ne sais pas vraiment si c'est un problème.Une solution facile à ce problème pour utiliser un profil spécial pour le jenkins/teamCity qui définit cette valeur à true. Par défaut/développement local profil faux que sa valeur!
Tout comme d'autres infos, ça devrait être bon de mentionner que l'option de ligne de commande est
-Dsurefire.useFile=false
.OriginalL'auteur Jesse Webb