2016-06-08 2 views
0

У меня есть Jhipster Сгенерировано с v3.4.0 (с использованием Gradle).Запуск тестов интеграции JUnit Spring/JHipster в STS

Я пытаюсь запустить и отладить модульные тесты от STS.

Из документации:

Эти тесты могут быть запущены непосредственно в IDE, щелкнув правой кнопкой мыши на каждом тестовом классе, или запустив МВН чистый тест (или ./gradlew тест, если вы запустите Gradle).

Хотя Gradle задача $.gradlew test выполняется, как ожидалось, при попытке «правой кнопкой мыши» и Run As Junit Test или Debug As Junit тест - я получаю исключения вокруг базы данных:

Небольшая часть StackTrace:

org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': I отклонение автоуведомленных зависимостей не удалось; вложенное исключение org.springframework.beans.factory.BeanCreationException: Не удалось метод autowire: общественная пустота org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.setFilterChainProxySecurityConfigurer (org.springframework.security.config.annotation .ObjectPostProcessor, java.util.List) throws java.lang.Exception; вложенное исключение: org.springframework.beans.factory.BeanExpressionException: выражение не удалось выполнить синтаксический анализ; вложенное исключение: org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'securityConfiguration': инъекция неавторизованных зависимостей; вложенное исключение org.springframework.beans.factory.BeanCreationException: Не удалось autowire поле: частный org.springframework.security.core.userdetails.UserDetailsService web.myapp.core.config.SecurityConfiguration.userDetailsService; Вложенное исключение - org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'userDetailsService': инжекция автоуведомленных зависимостей не удалась; Вложенное исключение: org.springframework.beans.factory.BeanCreationException: не удалось поле autowire: private web.myapp.core.repository.UserRepository web.myapp.core.security.UserDetailsService.userRepository; вложенная исключение org.springframework.beans.factory.BeanCreationException: Ошибка создания боб с именем «userRepository»: Невозможно создать внутренний боб «(внутренний компонент) # 1c752902» типа [org.springframework.orm.jpa.SharedEntityManagerCreator ] при установке bean property 'entityManager'; вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создание bean-компонента с именем '(внутренняя компонента) # 1c752902': не удается разрешить ссылку на bean 'entityManagerFactory' при установке конструктора аргумент; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создание bean с именем 'entityManagerFactory', определенным в пути класса ресурс [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Вызов метода init не удался; вложенное исключение: org.hibernate.cache.NoCacheRegionFactoryAvailableException: Кэш второго уровня используется в приложении, но свойство hibernate.cache.region.factory_class не задано; пожалуйста, либо отключите кеш второго уровня, либо настройте правильную область фабрики, используя настройку hibernate.cache.region.factory_class и убедитесь, что второй путь кэш-провайдера уровня (hibernate-infinispan, например) доступен в пути класса .

Мое предположение о том, что правильный профиль для тест-базы данных не инициализирован: src/test/resources/application.yml

Любые советы по настройке этого профиля в STS?

Update

Я обновил с некоторым скрином-магазинами согласно https://jhipster.github.io/configuring-ide-eclipse-gradle/:

  1. Фильтры Нет ресурсов Project Properties > Resource > Resource Filters (ни один не добавленную STS, когда я импортировал проект No Resource Filters Project Properties > Resource > Resource Filters (none were added by STS when I imported the project

  2. Проверено, чтобы убедиться, build/generated/source/apt/main добавляется в настройки Путь сборки Java под Project Properties > Java Build Path Checked to make sure the build/generated/source/apt/main is added to my Java Build Path settings under Project Properties > Java Build Path

+0

Вы выполнили [Eclipse and Gradle setup guide] (https://jhipster.github.io/configuring-ide-eclipse-gradle/)? Ваша проблема в том, что папка тестового ресурса настроена неправильно, что должно было быть в обычном порядке. –

+0

@JulienDubois Я сделал это как можно ближе и установил плагин buildship (хотя это было после импорта моего проекта). Я удалю Gradle STS Plugin и повторно импортирую с установленным buildship. –

+0

Привет @ jordan.baucke, извините за комментарий в этой старой теме, но вы смогли найти решение этой проблемы? У меня такая же проблема, и я пока не нашел решения. Благодаря! –

ответ

1

У меня была такая же проблема, и это, как я получил это работает:
1. Вы должны сначала запустить тест хотя бы один раз как часть задачи построения градиента, прежде чем вы сможете запустить его в интерактивном режиме с помощью JUnit
2. JHipster генерирует файл build.gradle по умолчанию только для запуска тестов, которые называются * UnitTest или * IntTest. Если у вас есть эта настройка по умолчанию, но вы по-другому назвали свой тест, то шаг 1 выше не будет работать, потому что, хотя сборка может завершиться успешно, она фактически не запускает ваш тест, и в результате ее все еще нельзя запустить в JUnit ,
3. Следуйте инструкциям, приведенным на скриншотах, которые были добавлены выше, в качестве обновления исходного вопроса.
Теперь пытается работать как JUnit Test.

+0

Я передам его вам, я переключился на Intellij и у меня было намного легче выполнять задания градиента из IDE. –

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