Различное поведение с использованием JUnit через Ant и IntelliJ IDEA - PullRequest
1 голос
/ 18 марта 2011

Я испытываю другое поведение при выполнении некоторых интеграционных тестов через IntelliJ IDEA 10 и использовании Ant из командной строки. В частности, тесты, которые вызывают синглтоны, не проходят через Ant и проходят через IDEA. Я знаю о недостатках использования синглетонов, но это код, который я унаследовал, и хотел бы создать тесты перед их удалением:)

Я убедился, что оба используют одну и ту же версию JUnit (4.8.1).

Вот фрагмент из файла Ant build.xml:

<junit printsummary="yes"
           fork="yes"
           forkmode="perTest"
           haltonfailure="no">
        <classpath refid="classpath.test"/>
        <formatter type="xml"/>
        <batchtest todir="${report.home}/tmp">
            <fileset dir="${test.home}">
                <include name="**/*Test.java"/>
                <exclude name="**/*TransactionalTests.java"/>
            </fileset>
        </batchtest>
    </junit>

Поскольку я не могу найти документацию по настройкам JUnit по умолчанию в IDEA, я не могу определить, работают ли они / как, и т.д. при запуске тестов.

Будем очень благодарны за любые предложения о том, чтобы получить то же поведение через Ant и IntelliJ.

1 Ответ

4 голосов
/ 18 марта 2011

IDEA запускает все тесты в одном экземпляре JVM, в то время как через Ant вы запускаете каждый тест в своем собственном экземпляре JVM.Поскольку в вашем коде есть синглтоны, результаты могут отличаться.В настоящий момент IDEA не имеет возможности форк-тестов, хотя эта функция запланирована.

Порядок выполнения также может иметь место, поскольку вы используете одиночные пакеты.IDEA запускает тесты в алфавитном порядке, и изменить их невозможно.Поэтому, чтобы получить идентичное поведение, вы должны указать Ant запускать ваши тесты в том же порядке, если порядок тестов важен (что не очень хорошая идея).

Кроме того, некоторые тесты исключены сМуравей, IDEA не имеет такой возможности.Если другие ваши тесты зависят от исключенных тестов, результаты будут другими.

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