Юнит тест в игре!Framework приложение, которое не требует тестирования Play Server - PullRequest
3 голосов
/ 16 июня 2011

Один вариант для запуска моих тестов в моей игре!Приложение выполняется путем выполнения команды play auto-test.

Один из способов, по которым Play, похоже, идентифицирует тесты для запуска, - это найти все тестовые классы с суперклассом play.test.UnitTest (или другим эквивалентом Play).Расширение тестового класса UnitTest, похоже, идет с некоторыми издержками, как показано в этом небольшом фрагменте содержимого консоли:

INFO   info, Starting C:\projects\testapp\.
WARN   warn, Declaring modules in application.conf is deprecated. Use dependencies.yml instead (module.secure)
INFO   info, Module secure is available (C:\play-1.2.1\modules\secure)
INFO   info, Module spring is available (C:\projects\testapp\.\modules\spring-1.0.1)
WARN   warn, Actually play.tmp is set to null. Set it to play.tmp=none
WARN   warn, You're running Play! in DEV mode
INFO   info, Connected to jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
INFO   info, Application 'Test App' is now started !

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

Если у меня есть тестовый класс, который не расширяется UnitTest, тогда он не будет выполнен командой play auto-test.Есть ли способ заставить команду play auto-test выполнить все тесты, независимо от того, расширяю ли я Play UnitTest?

Редактировать: Кто-то фактически поднял тикет по этой самой проблеме

Ответы [ 3 ]

2 голосов
/ 16 июня 2011

краткий ответ: нет.Немного более длинный ответ: нет, если вы не измените код в рамках.Автотест - это задача Ant, которая устанавливает сервер и запускает тестирование, но она не использует задачу ant, поэтому она не обнаружит (по умолчанию) ваши «обычные» модульные тесты.

У вас есть два варианта: либо вы добавляете дополнительную задачу в Ant-файл Play для запуска модульных тестов с помощью этой задачи (вам нужно будет также включить соответствующие jar-файлы), либо вы редактируете код, используемый для запуска тестовой среды Play.

И то, и другое подразумевает изменение основы до определенного уровня.Несмотря на то, что вы используете Play, я удивляюсь, почему вам не нужно, чтобы все ваши тесты следовали шаблону Play ...

0 голосов
/ 17 ноября 2011

Я действительно не понимаю, почему сама проблема даже спорно.Простые и небольшие юнит-тесты (даже в веб-части вашего проекта) - это наиболее нормальная вещь.Дополнительные затраты на инициализацию фреймворка значительно замедляют круговые обращения, если у вас много тестов.Как видно из заявки, текущий обходной путь - заставить ваши юнит-тесты расширять org.junit.Assert вместо play.test.UnitTest

0 голосов
/ 21 июня 2011

Если эти тесты не требуют Play!особенность, почему бы вам не положить их в библиотеку?На вашем примере (math add): создайте пакет calculator.jar и соберите его с помощью Ant или Maven после выполнения тестов.Таким образом, вы можете использовать свою библиотеку в нескольких Play!проекты (или Spring, Struts, ... если хотите.

...