我有一个使用v3.4.0生成的Jhipster(使用Gradle)。
我正在尝试从STS运行和调试单元测试。
来自文档:
可以直接在IDE中运行这些测试,方法是右键单击每个测试 测试类,或运行mvn clean test(如果运行则运行./gradlew测试) 摇篮)。
当gradle任务$.gradlew test
按预期执行时,当我尝试“右键单击”并Run As Junit Test
或Debug As Junit
测试时 - 我在数据库周围获得例外:
堆栈跟踪的一小部分:
org.springframework.beans.factory.BeanCreationException:错误 用名字创建bean 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': 注入自动连接的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:不能 autowire方法:public void org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.setFilterChainProxySecurityConfigurer(org.springframework.security.config.annotation.ObjectPostProcessor,java.util.List中) 抛出java.lang.Exception;嵌套异常是 org.springframework.beans.factory.BeanExpressionException:Expression 解析失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为'securityConfiguration'的bean:注入 自动连接依赖失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:不能 autowire字段:私有 org.springframework.security.core.userdetails.UserDetailsService web.myapp.core.config.SecurityConfiguration.userDetailsService; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为'userDetailsService'的bean:注入自动装配 依赖失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:不能 autowire字段:private web.myapp.core.repository.UserRepository web.myapp.core.security.UserDetailsService.userRepository;嵌套 异常是org.springframework.beans.factory.BeanCreationException: 创建名为'userRepository'的bean时出错:无法创建内部 bean'(内豆)#1c752902'的类型 [org.springframework.orm.jpa.SharedEntityManagerCreator]设置时 bean属性'entityManager';嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为'(内部bean)#1c752902'的bean:无法解析 设置构造函数时引用bean“entityManagerFactory” 参数;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 在类路径中定义名为'entityManagerFactory'的bean 资源 [组织/ springframework的/引导/自动配置/ 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中设置此个人资料的任何建议吗?
更新
我已根据https://jhipster.github.io/configuring-ide-eclipse-gradle/
更新了一些网上商店答案 0 :(得分:1)
我遇到了同样的问题,这就是我的工作方式:
1.作为gradle构建任务的一部分,您需要首先运行测试,然后才能使用JUnit以交互方式运行它。
2.默认情况下,JHipster生成build.gradle文件,仅运行名为* UnitTest或* IntTest的测试。如果你有这个默认配置,但是以不同的方式命名你的测试,那么上面的步骤1将无法工作,因为虽然构建可能成功完成但它实际上没有运行你的测试,因此它仍然可以&#39 ; t在JUnit中运行。
3.按照上面添加的屏幕截图中给出的步骤作为原始问题的更新
现在尝试以JUnit Test运行。