Тесты JUnit дважды выполняются моей целью Ant - PullRequest
2 голосов
/ 16 декабря 2009

Я создал цель Ant, которая запускает мои тесты JUnit 4. К сожалению, все они выполнены дважды!

Кто-нибудь имеет представление о том, что я сделал неправильно?

Вот моя цель для муравья:

<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>

Моей первой идеей было то, что это из-за комплектов тестов. Но я так больше не думаю. Я исключил наборы тестов и, кроме того, это не только те тесты, которые являются частью наборов, которые запускаются дважды. Это все мои тесты.

Ниже приведен небольшой пример результатов теста одного из моих тестовых классов:

[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

Как видите, тесты в YdelsestypeBOTest выполняются дважды ...

Ответы [ 2 ]

2 голосов
/ 21 декабря 2009

с линии:

[20:24:55]: [loadYdelsevariationer] [Тестовый вывод] EMMA: сбор данных покрытия во время выполнения

Похоже, что другая цель Ant вызывает инструмент покрытия кода Эмма , который затем повторно запускает ваши тесты. Если вы запускаете свой Ant-скрипт с этой целью, т.е. ant junit, всегда ли он это делает?

0 голосов
/ 17 декабря 2009

Трудно сказать, что именно здесь происходит, но попробуйте временно удалить все ваши тестовые наборы и перекомпилировать, чтобы убедиться, что они не вызывают проблему. Похоже, вы все равно захотите избавиться от тестовых наборов, если вы начинаете переходить от тестовых наборов к использованию batchtest.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...