использование junit 4 в Grails

Я хотел бы использовать некоторые функции JUnit 4 в своем тестировании Grails, но в настоящее время тесты Grails выполняются под JUnit 3. JUnit 4 можно использовать из groovy, но замена JUnit jar в Grails на JUnit 4, похоже, не позволяет функциональность, которую я ищу.

Кто-нибудь знает, как я могу заставить Grails запускать свои тесты с junit 4?


person Robin    schedule 07.02.2009    source источник


Ответы (4)


Что касается Grails 1.3.6, похоже, что Junit 4 поддерживается не полностью. Интеграционные тесты хороши в Junit 4, но модульные тесты, расширяющие GrailsUnitTestCase, ограничены Junit 3. GrailsUnitTestCase расширяет GroovyTestCase, который по-прежнему привязан к Junit 3.

В документе Groovy (http://groovy.codehaus.org/Using+JUnit+4+with+Groovy) говорится, что Junit 4 поддерживается, но обратите внимание на утверждение «В настоящее время нет специальных расширений Groovy для JUnit 4». . Таким образом, вы можете использовать его, но ни одно из тестовых расширений Groovy не использует его преимущества.

Это убийца модульных тестов, которые должны использовать любое из тестовых расширений Grails, например mockDomain. Я исхожу из предположения, что я фактически застрял с Junit 3.

person Rob Conaway    schedule 12.01.2011

Вы можете использовать JUnit 4 с Grails, если используете Groovy 1.5+ и Java 5+:

http://web.archive.org/web/20150311212721/http://groovy.codehaus.org/Using+JUnit+4+with+Groovy

person yawmark    schedule 07.02.2009
comment
привет и спасибо за ответ, я уже видел эту ссылку, но я все еще не уверен, как заставить скрипт grails test-app запускать мои тесты под JUnit 4. - person Robin; 07.02.2009
comment
привет, я только что заменил junit4 jar на Grails 1.0.4 lib. Я обнаружил, что он работает так же, как junit3, и я не могу позволить функции junit4 работать там. - person chanwit; 07.02.2009
comment
Вопрос был об использовании JUnit 4 в Grails, но эта страница посвящена Groovy. - person Dónal; 04.08.2009

Начиная с Grails 1.3M1, JUnit 4 встроен: http://www.grails.org/1.3-M1+Release+Notes

person Stefan Armbruster    schedule 15.03.2010

Grails не поддерживает JUnit 4. Они изучают возможности его поддержки в Grails 1.3. Вы можете принудительно установить зависимость от JUnit 4, но инструменты Grails могут игнорировать ваши тесты, выполнять их неправильно или вы можете столкнуться с другими странными побочными эффектами.

Чтобы принудительно установить зависимость от JUnit 4 (на свой страх и риск), откройте файл grails-app/conf/BuildConfig.groovy. В этом файле измените разделы dependencies и inherits, включив в них следующее:

inherits("globals") { 
  excludes "junit" 
}

dependencies { 
  test "junit:junit:4.7" 
}

Затем в SpringSource Tool Suite щелкните проект правой кнопкой мыши и выберите Инструменты Grails -> Обновить зависимости. Это должно заменить junit 3.8.1 в ваших зависимостях Grails на junit 4.7.

person piepera    schedule 21.01.2010
comment
Это почти сработало, за исключением того, что я начал получать ошибки сборки, потому что классы JUnit 3.x больше не были доступны (косвенно ссылаются на какой-то файл .class). - person Ed Brannin; 22.01.2010
comment
Я не испытываю такого же поведения. Какие jar-файлы ссылаются на классы, специфичные для JUnit 3.x? - person piepera; 27.01.2010