Я пытаюсь выполнить JUnit-тесты через безголовый Eclipse в нашем процессе сборки. Модульные тесты вызываются из сценария Ant с помощью этой команды:
eclipsec.exe -noSplash -application org.eclipse.ant.core.antRunner -data "C: \ SomeDirectory" -buildfile "C: \ Path \ To \ tests.xml "
Это работает нормально, если только сценарий Ant не должен завершиться неудачно по какой-либо причине (либо из-за явной задачи из-за сбоя модульного теста, либо из-за того, что модульный тест вызвал исключение в восходящем направлении). В любом случае eclipsec
вызывает диалоговое окно, чтобы сообщить, что «Произошла ошибка». Это сопровождается исключением. Верхняя часть трассировки стека, если она актуальна, выглядит следующим образом:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:513)
at org.eclipse.ant.core.AntRunner.start(AntRunner.java:600)
Меня не волнует, что не дает Ant-скрипт или Eclipse - это то, для чего ведется журнал - но диалоговое окно, которое появляется вместе с это неприемлемо, потому что вешает нашу систему непрерывной интеграции, пока она ждет, пока невидимый пользователь щелкнет по ней.
Можно ли каким-либо образом заблокировать это диалоговое окно? Можно ли как-нибудь обойти это диалоговое окно, которое не требует, чтобы реальный пользователь отвечал на него?
Дополнительная информация:
Версия Eclipse: Indigo (последняя по состоянию на вчерашний день). Ant и JUnit внутри него.
Версия Java: JDK 6.0_30 32bit
ОС: Windows (7 и Server 2003)