jUnit - возможно ли запускать тесты НЕ одновременно? - PullRequest
2 голосов
/ 04 июля 2011

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

Ответы [ 2 ]

1 голос
/ 04 июля 2011

Я видел такую ​​проблему с сокетами раньше. В разных ОС закрытие порта может занять больше времени, чем говорит виртуальная машина. Я бы порекомендовал вам сделать тесты спящими и / или тайм-аут, пока они не смогут открыть порт сервера. Это плохое решение, я знаю.

1 голос
/ 04 июля 2011

JUnit запускает только один тест за раз, если вы не сделаете что-то особенное, чтобы заставить это сделать иначе.Вероятно, в вашем случае происходит то, что прокси, запущенный для одного теста, не останавливается или не останавливается во времени до запуска второго теста.

РЕДАКТИРОВАТЬ: В ответ на ваш комментарий, есть несколькоспособы справиться с этим.Один из них заключается в том, чтобы поместить тест в тот же пакет, что и класс, чтобы вы могли использовать закрытый метод пакета (что означает, что у него нет объявления открытого частного или чего-либо еще), который закрывает сокет и вызывает этот метод из теста, поэтомуон закрыт, но не является частью общедоступного API.

Другой вариант - передать в конструктор генератор сокетов.В производственном процессе вы можете не проходить один вход, а просто иметь внутреннюю реализацию, но при тестировании вы проходите тест, созданный вашим тестовым кодом, и ваш тестовый код закрывает его в конце теста.

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