2009-12-15 6 views
2

J'ai créé une cible Ant qui exécute mes tests JUnit 4. Malheureusement, tous sont exécutés deux fois!Les tests JUnit sont exécutés deux fois par ma cible Ant

Est-ce que quelqu'un a une idée de ce que j'ai fait de mal?

Voici ma cible fourmi:

<target name="junit" description="Execute unit tests" depends="compile"> 
<delete dir="rawtestoutput"/> 
<delete dir="test-reports"/> 
<mkdir dir="rawtestoutput"/> 
<junit printsummary="on" failureproperty="junit.failure" fork="true"> 
    <classpath refid="class.path.junit"/> 
    <formatter type="xml" usefile="true" /> 
    <batchtest todir="rawtestoutput"> 
     <fileset dir="src/test"> 
      <include name="**/*.java"/> 

      <!-- Add util and testhelper classes here (to avoid "No tests in class" error) and add suite classes to avoid test being run twice --> 
      <exclude name="**/SessionHelper.java"/> 
      <exclude name="**/TestHelper.java"/> 
      <exclude name="**/AllTests.java"/> 
      <exclude name="**/AllEDITests.java"/> 
     </fileset> 
    </batchtest> 
</junit> 
<junitreport> 
    <fileset dir="rawtestoutput"/> 
    <report todir="test-reports"/> 
</junitreport> 
<fail if="junit.failure" message="Unit test(s) failed. See reports!"/> 
</target> 

Ma première idée était que parce que des suites de tests. Mais je ne le pense plus. J'ai exclu les suites de tests et en plus, ce ne sont pas seulement les tests qui font partie de suites qui sont exécutées deux fois. C'est tous mes tests.

Voici un petit échantillon de la sortie de test d'un de mes testsclasses:

[20:24:53]: [junit] Running dk.gensam.gaia.business.ydelse.YdelsestypeBOTest 
[20:24:53]: [junit] dk.gensam.gaia.business.ydelse.YdelsestypeBOTest (2s) 
[20:24:54]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsevariationer 
[20:24:55]: [loadYdelsevariationer] [Test Output] EMMA: collecting runtime coverage data ... 
[20:24:55]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsestypeIndex_alleExisterendeErAnnullerede 
[20:24:56]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsestypeIndex_ingenEksisterendeValgteRelationer 
[20:24:56]: [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 3,077 sec 
[20:24:56]: dk.gensam.gaia.business.ydelse.YdelsestypeBOTest (3s) 
[20:24:56]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsevariationer 
[20:24:56]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsestypeIndex_alleExisterendeErAnnullerede 
[20:24:56]: [dk.gensam.gaia.business.ydelse.YdelsestypeBOTest] loadYdelsestypeIndex_ingenEksisterendeValgteRelationer 

Comme vous pouvez le voir les tests en YdelsestypeBOTest sont exécutés deux fois ...

Répondre

0

Il est difficile de dire exactement ce Cela se produit ici, mais essayez de supprimer temporairement toutes vos suites de test et recompilez juste pour vous assurer qu'elles ne causent pas le problème. Il semblerait que vous souhaitiez de toute façon vous débarrasser des suites de tests si vous commencez à passer des suites de tests à l'utilisation de la fonction batchtest.

2

Depuis la ligne:

[20:24:55]: [loadYdelsevariationer] [Sortie Test] EMMA: la collecte des données de couverture d'exécution

Il ressemble à une autre cible Ant invoque l'outil de couverture de code Emma qui réexécute vos tests. Si vous exécutez votre script Ant avec cette cible, c'est-à-dire ant junit, est-ce toujours le cas?