Тесты JUnit в Eclipse не пройдены при совместном запуске - PullRequest
7 голосов
/ 26 ноября 2010

У меня есть набор из 44 тестов JUnit, которые я запускаю с помощью Eclipse (я получил эти тесты от кого-то другого - я новичок в тестах JUnit). Когда я запускаю их все вместе, 24 из них терпят неудачу. Однако, если я затем запускаю неисправные по отдельности, некоторые из них все-таки проходят. Тесты занимают немного времени - например, один из неудачных тестов занимает около одной или двух минут, в то время как все их работы завершаются всего за несколько секунд.

Я запускаю несколько тестов, щелкнув правой кнопкой мыши по папке, в которой они находятся, и выбрав «Запуск от имени -> Тест JUnit». Я использую JUnit 3. Я что-то не так запускаю при запуске / есть какая-то опция, которую мне не хватает?

Ответы [ 3 ]

12 голосов
/ 26 ноября 2010

Трудно сказать наверняка, не видя тесты, но мне кажется, что они разделяют какое-то состояние или ресурс, который неправильно сбрасывается для следующего теста.

5 голосов
/ 30 ноября 2010

Чтобы расширить ответ Гэри, при щелчке правой кнопкой мыши и выполнении Run As -> JUnit вы не можете гарантировать порядок, в котором выполняются тесты, что также может помочь повредить общий ресурс.

Я бы начал с просмотра ваших методов setup () и teardown (), чтобы убедиться, что общие ресурсы сбрасываются правильно. Кроме того, поскольку вы унаследовали эти тесты, вы можете посмотреть, зависят ли какие-либо из тестов друг от друга. Хотя это плохая практика и ее следует изменить, вы, возможно, могли бы создать набор тестов (), чтобы обеспечить порядок, в котором они выполняются (по крайней мере, до тех пор, пока вы не сможете повторно разложить и отделить тесты).

5 голосов
/ 26 ноября 2010

GaryF ответ один вариант. Другое состоит в том, что у тестов есть условие гонки: успешность теста зависит от того, насколько быстро что-то происходит (которое может варьироваться из-за капризов O / S). Если вы запускаете ошибочные тесты по отдельности, они всегда будут успешными или иногда они будут неудачными. Если они иногда терпят неудачу, то, скорее всего, у вас расовое состояние.

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