当前位置: 首页 > 知识库问答 >
问题:

Spring测试在eclipse上成功,但在gradle build上失败

温峻熙
2023-03-14

我不知道为什么,我的spring boot测试在eclipse中以junit形式运行时成功了,但当我执行以下命令时失败了:

gradle clean build

这是我的建筑。格雷德尔:

buildscript {
    ext {
        springBootVersion = '1.5.8.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

sourceCompatibility = 1.8
targetCompatibility = 1.8

jar {
    baseName = rootProject.name
    version =  project.version
}

repositories {
    mavenCentral()
}



dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework:spring-jdbc')
    compile('mysql:mysql-connector-java')
    compile('javax.validation:validation-api')
    compile('org.hibernate:hibernate-core:5.2.2.Final')
    compile('org.hibernate:hibernate-tools:5.2.0.Final')
    testCompile('com.h2database:h2:1.4.196')
    testCompile('org.springframework.boot:spring-boot-starter-test')
    testCompile('org.springframework.security:spring-security-test')

}

运行gradle命令后,由于各种原因,我的所有测试都失败了,主要原因是无法创建bean并将它们自动连接到测试类。

下面是一个测试示例:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
@DataJpaTest
@ActiveProfiles("test")
public class IEmployeeRepositoryTest {

@Autowired
private TestEntityManager entityManager;

@Autowired
private IEmployeeRepository employeRepository;

这就是构建/测试失败的原因:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' 
defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is 
java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Properties;

我很感激能得到的帮助,我已经在这件事上耽搁了好几个小时了。

更新这是我的gradle dependencies的输出:图像到gradle dependencies

我还应该提到项目结构如下:

src
---main
-----java
-----resources
------application.yml
------schema.sql
---test
-----java
-----resources
------application-test.yml
------schema-test.sql

共有1个答案

严天逸
2023-03-14

今天我遇到了这种情况,在我的例子中,问题是我在eclipse项目中使用了Java8 JDK,而我的评分结果指向了我的机器JDK11。我从Java11转换成Java8,它起作用了

 类似资料:
  • 问题内容: 我在JBoss eap 6.1服务器上运行Arquillian测试(由jenkins作业启动)时遇到问题。在JBoss 7.1.1服务器上运行测试没问题,但是当我切换到eap 6.1时,所有测试都收到以下异常: 如果我在本地计算机上的EAP 6.1服务器上运行测试,则一切工作正常(配置相同,因此不会出现问题)。 有谁知道可能是什么问题? Arquillian依赖项: managed 问

  • 我的Junit测试使用DBUnit,从Eclipse运行时运行良好。但是,使用Maven运行相同的测试会导致以下一项测试失败: 我已经连续几次尝试从EclipseGUI(“作为JUnit测试运行”)运行该测试和整个测试集,但它们从未失败——但从Maven来看,它们确实失败了。 我对每个测试都使用@数据库设置,但这足以真正重置数据库吗?我还认为Maven可能会并行运行测试,所以我尝试在pom.xml

  • 在Groovy中使用Dropbox和GoogleDrive构建应用程序,测试运行良好。 代码: 然而,在Codeship和Amazon上运行时,测试失败: 消息:创建名为“googleAuthorizationCodeFlowBuilder”的bean时出错:bean的实例化失败;嵌套异常为org . spring framework . beans . bean instantiation ex

  • 问题内容: 我已经使用JUnit 4和spring-test库编写了一些JUnit测试。当我在Eclipse中运行测试时,可以正常运行并通过。但是,当我使用Maven运行它们(在构建过程中)时,它们无法给出与Spring相关的错误。我不确定是什么引起了问题,JUnit,Surefire或Spring。这是我的测试代码,spring配置以及从Maven获得的异常: PersonServiceTest

  • 所有测试返回“NosuchBeanDefinitionException:没有'com.example.networkService'类型的合格bean可用:预期至少有1个bean符合autowire候选。依赖项注释:{@org.springframework.beans.factory.annotation.autowired(required=true)}” 这是配置文件application

  • 集成测试(生产代码运行良好)失败,同时请求RESTendpoint保护与@Role允许。抛出以下错误: 项目基于JWT的OpenLiberty。不同之处在于UI部分。我的用户界面是基于Angular的,因此对于REST Endpoint以下的身份验证(JWT发布)使用: 因此: UI(Angular)调用与Header 后端在正文和标题中使用新生成的JWT令牌进行响应 UI将此令牌用于针对REST