2011-05-16 4 views
1

Что такого различия в фазе интеграции запуска Grails тестов с помощью Грааль тестов-приложения против Grails теста-приложения -ИнтеграцииGrails Разница в Grails тест-приложении против Grails теста-приложения -Интеграции

У меня есть набор тесты, которые пройдут под одной, но не другой, но я не могу найти то, что отличается на фазе интеграции, основываясь на двух способах ее вызова.

+0

Jeff, если случайно те тесты, которые не выполняются при запуске grails test-app, используют свойства класса GrailsConfig? – Maricel

+0

Не то, чтобы я вижу прямо. –

+0

У меня была такая же проблема с интеграционными тестами при использовании GrailsConfig, это похоже на то, что модуль тестирует очистку объекта, а интеграционные не перезагружают его снова, прежде чем запускать, так что я сделал, чтобы использовать значения по умолчанию и что " починил это. – Maricel

ответ

3

Единичные испытания в грабли выполняются без установки среды. Нет базы данных; объекты и gorm издеваются, и вам нужно сделать определенные вещи для настройки объектов домена для тестирования. И вы не можете делать такие вещи, как тестовые запросы на основе hql (я думаю, что эта функция может появиться в более новых версиях grails)

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

Это общая схема, не видя тестов и сбоев, трудно сказать, что не так.

+0

Проблема заключается в том, что тесты в фазе интеграции не сработают, когда я запускаю тесты через тестовое приложение grails, но не тогда, когда я начинаю тестирование с помощью приложения grail test-app -integration. В основном я ищу то, что отличается от фазы интеграции между двумя вызовами. (Я отправлю точную ошибку в другом вопросе) –

+0

Просто заметьте, что не все тесты несколько, и они работали в предыдущей версии grails. –

+0

Единичные и интеграционные испытания - это совершенно разные фазы, которые являются независимыми. можете ли вы опубликовать неудачный тест? – hvgotcodes

2

У меня была аналогичная проблема. Я не уверен, почему, но порядок интеграционных тестов был другим. Это приводит к ошибке во время setUp/tearDown. В основном один tearDown имел некоторые проблемы и не удалял все объекты, созданные в setUp. Это приведет к ошибке в следующем тесте.

Стоит проверить.

+0

Это именно то, что происходило , похоже, что тестовый заказ изменяется между тестом-приложением и тегом-app -интеграцией –

+0

Но это приводит к простому выводу: у вас что-то не так с вашим tearDown - он должен оставить вашу БД в состоянии от setUp. – Krystian

+0

Да, обсуждение актуальной проблемы с тестами см. Http://stackoverflow.com/questions/6019758/integration-tests-started-to-fail-with-grails-upgrade. Этот вопрос был вокруг того, что фактическая разница между двумя прогонами. –

Смежные вопросы