2009-02-07 5 views
3

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

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

ответ

4

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

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

+0

привет и спасибо за ответ, я уже видел эту ссылку, но я до сих пор не уверен, как получить скрипт сценария grails запустите мои тесты под JUnit 4. – Robin

+0

привет, я только что заменил junit4 jar в Grails 1.0.4 lib. Я нашел, что он работает так же, как junit3, и я не могу позволить работать junit4. – chanwit

+2

Вопрос касался использования JUnit 4 в Grails, но эта страница о Groovy –

0

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

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

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

dependencies { 
    test "junit:junit:4.7" 
} 

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

+0

Это почти сработало, за исключением того, что я начал получать ошибки сборки, потому что классы JUnit 3.x больше не были доступны (косвенно ссылаются на некоторый файл .class). –

+0

Я не испытываю такого же поведения. Какие jars ссылаются на классы JUnit 3.x? – piepera

4

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

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

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

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

  • Нет связанных вопросов^_^