2010-03-19 6 views
1

Lorsqu'un test JUnit déclenche une exception d'exécution lors de son exécution dans Eclipse, vous pouvez voir la totalité de la trace de la pile.Comment obtenir des traces de pile complètes enregistrées lorsqu'un test JUnit s'exécutant dans ant échoue?

Notre serveur de construction utilise ant et exécute JUnit, mais l'impression en cas d'erreur ne fournit que le message de l'exception, et non l'intégralité de "printStackTrace". Y at-il un moyen pratique d'obtenir cette fonctionnalité?

Répondre

2

J'ai posté cette réponse à this question avant de réaliser que c'était une copie de la vôtre.

Voici ma balise junit qui produit la trace d'exception.

<junit 
    showoutput="yes" 
    errorProperty="test.failed" 
    failureProperty="test.failed" 
    haltOnFailure="${test.halt-on-failure}" 
    fork="yes" 
    forkmode="${junit.forkmode}" 
> 
    <classpath> 
    <pathelement location="${classes.dir}"/> 
    <pathelement location="${classes-under-test.classes.dir}" /> 
    </classpath> 

    <!-- #Formatters for capture and display --> 
    <formatter 
    type="brief" 
    usefile="false" 
    /> 
    <formatter type="brief" /> 
    <formatter 
    type="xml" 
    if="test.generate.xml.output" 
    /> 

    <!-- #Test case isolation technique --> 
    <test 
    name="${testcase}" 
    if="testcase" 
    /> 

    <batchtest 
    todir="${test.data.dir}" 
    unless="testcase" 
    > 
    <fileset dir="${classes.dir}"> 
     <include name="**/Test*.class" /> 
     <exclude name="**/Test*$*.class" /> 
    </fileset> 
    </batchtest> 

</junit> 

Je pense que l'un des éléments imbriqués qui le fera pour vous est

<formatter 
    type="brief" 
    usefile="false" 
    /> 
0

Il y a un paramètre dans JUnit BaseTestRunner limitant cette valeur:

/** 
    * Truncates a String to the maximum length. 
    */ 
public static String truncate(String s) { 
    if (fgMaxMessageLength != -1 && s.length() > fgMaxMessageLength) 
     s= s.substring(0, fgMaxMessageLength)+"..."; 
    return s; 
} 

Vous pouvez modifier cette valeur en sélectionnant:

BaseTestRunner.setPreference("maxmessage", "-1");