Время от времени я сталкиваюсь с проблемой, что тесты интеграции Grails, имя которых заканчивается на «IntegrationTests», не работают с исключениями, которые показывают, что методы GORM не были добавлены в классы домена. После переименования этих тестов в «* IntegrationTest» (no s at the end) они работают нормально.Являются ли интеграционные тесты Grails чувствительными к их имени?
Короткий пример:
class MyIntegrationTests {
@Test
void myTest() {
assert MyDomainClass.count() == 0
}
}
потерпит неудачу со следующим исключением:
Failure: myTest(de.myproject.MyIntegrationTests)
groovy.lang.MissingMethodException: No signature of method: de.myproject.MyDomainClass.count() is applicable for argument types:() values: []
Possible solutions: count(), ident(), print(java.io.PrintWriter), print(java.lang.Object), getCount(), wait()
at de.myproject.MyIntegrationTests.myTest(MyIntegrationTests.groovy:9)
После переименования MyIntegrationTests в MyIntegrationTest тест пройден.
Есть ли какая-то магия в соответствии с названием теста? Все, что я нашел в документации Grails: «Тесты также могут использовать суффикс теста вместо тестов». Любые идеи?
Не было перемещение из тестовой папки в тестовую папку интеграции. И нет, я использовал "grails test-app integration:" для запуска тестов не IntelliJ. – johanneslink
Фактически, когда я назвал интеграционный тест с суффиксом Spec, который был по умолчанию. Мой интеграционный тест не прошел? Является ли суффикс спецификации неправильным в тесте интеграции? – Rradhak