Запуск GWTTestCase на уже скомпилированном модуле - PullRequest
0 голосов
/ 17 февраля 2011

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

Однако ранее в скрипте сборки я уже скомпилировал модули. Это очевидная трата усилий. Кто-нибудь знает какой-либо способ протестировать GWTTestCase для запуска в производственном режиме на уже скомпилированных модулях.

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

Ответы [ 2 ]

0 голосов
/ 09 марта 2011

Ну, я нашел решение, но оно не изящное. Я изменил метод JUnitShell.maybeCompileForWebMode, вы должны добавить аргумент VM -Dcompile=false, чтобы предотвратить компиляцию во время выполнения модульных тестов. Вы можете получить модифицированную версию JUnitShell из здесь .

0 голосов
/ 17 февраля 2011

Это будет полезно для вас

Основной класс в тестовой инфраструктуре - JUnitShell .Чтобы контролировать аспекты выполнения ваших тестов, вы должны передать аргументы этому классу.Аргументы не могут быть переданы напрямую через командную строку, потому что обычные аргументы командной строки передаются непосредственно исполнителю JUnit.Вместо этого определите системное свойство gwt.args для передачи аргументов в JUnitShell.

Например, для запуска тестов в производственном режиме (то есть запускайте тесты после того, как они были скомпилированы в JavaScript), объявите -Dgwt.args = "- prod" в качестве аргумента JVM при вызове JUnit.Чтобы получить полный список поддерживаемых параметров, объявите -Dgwt.args = "- help" (вместо запуска теста в консоль выводится справка).Запуск теста в производственном режиме

При использовании инструмента webAppCreator вы получаете возможность запускать тесты либо в режиме разработки, либо в производственном режиме.Убедитесь, что вы тестируете в обоих режимах - хотя и редко, но есть некоторые различия между Java и JavaScript, которые могут привести к тому, что ваш код будет давать разные результаты при развертывании.

Если вы решите вместо этого запустить JUnit TestRunner из командной строки, вы должны добавить несколько дополнительных аргументов, чтобы ваши модульные тесты работали в производственном режиме.По умолчанию тесты, запускаемые в режиме разработки, выполняются как обычный байт-код Java в JVM.Чтобы переопределить это поведение по умолчанию, вам нужно передать аргументы в JUnitShell

-Dgwt.args = "- prod"

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