grails -функциональные тесты не будут запускаться даже из Intelli-J?

#testing #grails #groovy #junit #functional-testing

#тестирование #grails #groovy #junit #функциональное тестирование

Вопрос:

У меня есть тесты в, /test/functional которые расширяются GrailsUnitTestCase . Когда я запускаю grails test-app , они не запускаются, и когда я пытаюсь запустить их из Intelli-J, я получаю no tests found .

Мой тест достаточно прост, но я просто не понимаю, почему он не запускается. Если я помещу это в /integration/ или /unit / , кажется, что это выполняется. Я использую grails 1.3.6 . Есть ли какая-либо причина, по которой -functional тесты тестовой фазы не будут запускаться для меня?

 class MyServiceFunctionalTests extends GrailsUnitTestCase {
    MyService myService

    public void setUp() {
        myService = new MyService()
    }

    public void testSomething(){
       assertTrue( true );
    } 
} 
  

Ответ №1:

У вас установлен плагин для функционального тестирования? В Grails core нет прямой поддержки функциональных тестов, поэтому вы хотели бы установитьhttp://grails.org/plugin/functional-test или http://grails.org/plugin/geb или одного из других функциональных тестовых плагинов.

Я знаю, что ваш код — это всего лишь пример, но не имело бы смысла ни расширять GrailsUnitTestCase, ни создавать новый экземпляр MyService (или даже пытаться использовать внедрение зависимостей). Функциональные тесты на самом деле — это просто клиенты запущенного приложения, которые выполняют запросы GET и POST и проверяют ответы, поэтому у вас не будет доступа к компонентам Spring, сервисам и т.д.

Комментарии:

1. Мои службы попадают во внешние системы, которые гарантированно не будут запущены на этапе тестирования интеграции. Плагин функционального тестирования имеет конфликтующие зависимости, которые, похоже, невозможно исправить даже с transitive=false . Есть ли простой способ добавить фазу тестирования без плагина? Кроме того, в документации 1.3.6 и 1.3.7 четко указано, что поддерживаются функциональные и другие фазы тестирования.

2. Они поддерживаются, но в core нет ничего для их запуска, запуска сервера и т.д. Есть только хуки, которые могут использовать плагины для функциональных тестов.

3. А, понятно. Мне действительно не нужно запускать сервер, поскольку я хочу использовать функциональные тесты в качестве тестирования метода REST / selenium RC-тестов во внешней системе. Есть ли простой способ добавить запуск функциональных тестов, как если бы они были модульными или интеграционными?

4. Вам следует задать вопрос в списке рассылки пользователей. Люк Дейли проделал большую работу в этой области и, вероятно, сможет помочь вам запустить подмножество ваших модульных тестов (т. Е. не функциональных или интеграционных в смысле Grails, но не управляемых макетами) в качестве функциональных тестов на их собственной фазе.