Модульные тесты не запускаются после обновления с Grails 2.3 до 2.5
Обновление довольно большого приложения с Grails 2.3.11 до Grails 2.5.0, и у меня все в основном работает. Интеграционные тесты запускаются, и run-app
загрузка тонны данных о приборах работает хорошо, и приложение, похоже, хорошо работает в предварительном тестировании, но модульные тесты просто не будут работать вообще.
Ошибка и трассировка стека не очень полезны для меня и не слишком полезны для результатов в Google, поэтому мне интересно, есть ли у кого-нибудь идеи о том, что происходит.
Когда я бегу grails test-app unit:
ошибка выдает почти сразу:
Error running unit tests: org.spockframework.extension.ReportExtension.start()
...
| Error Exception in thread "org.spockframework.runtime.RunContext.stop()"
| Error java.lang.AbstractMethodError: org.spockframework.extension.ReportExtension.stop()V
| Error at org.spockframework.runtime.GlobalExtensionRegistry.stopGlobalExtensions(GlobalExtensionRegistry.java:111)
| Error at org.spockframework.runtime.RunContext.stop(RunContext.java:67)
| Error at org.spockframework.runtime.RunContext.access$000(RunContext.java:30)
| Error at org.spockframework.runtime.RunContext$2.run(RunContext.java:159)
Я пытался удалить все юнит-тесты и заменять по одному, но не повезло. Также я сделал много очистки с grails clean
и удаление.grails dir и тому подобных вещей, чтобы удостовериться, что я не использую какой-то старый плагин спока, так как в какой-то момент приложение использовало это, но опять же, не повезло. Даже запуск только с одним только что сгенерированным модульным тестом из недавно установленного шаблона скаффолдинга имеет ту же проблему. Если нет юнит-тестов, то не жалуется.
Интересно, что недавно созданное приложение, похоже, тоже не работает идеально, но я не могу сказать, связаны ли проблемы. В этом приложении всего 3 домена и тесты, все сгенерированные с использованием grails generate-domain-class
вывод выглядит так:
| Running 3 unit tests... 1 of 3
| Failure: initializationError(org.junit.runner.manipulation.Filter)
| java.lang.Exception: No tests found matching grails test target pattern filter from org.junit.runner.Request$1@5ea22f37
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
| Completed 1 unit test, 1 failed in 0m 0s
Поскольку кажется маловероятным, что проблема может быть как-то связана с моей системой и моей установкой Grails, я добавлю, что я использую Ubuntu с Grails, установленным через GVM.
1 ответ
Проблемой с моим основным приложением была старая банка Spock в папке lib. Что это там делало... Я даже не знаю. Мне не приходило в голову заглянуть туда раньше.
Все еще не объясняет странный вывод из недавно созданного приложения, так что не стесняйтесь вмешиваться в это!