【问题标题】:Is ApplicationContext file necessary if I want to run the unit test?如果我想运行单元测试,是否需要 ApplicationContext 文件?
【发布时间】:2021-12-13 16:10:27
【问题描述】:

大家,

我是网络开发的新手。最近,我开始了一个使用 Spring Boot 和 MySQL 数据库构建注册和登录的教程。当我运行单元测试时,会出现错误。我在教程中找不到 ApplicationContext 文件,并且还尝试了堆栈溢出的薮方法,例如更改 pom.xml 中的插件设置但不起作用。

谁能回答这个问题?

Errors on IDE

【问题讨论】:

    标签: java mysql spring-boot unit-testing


    【解决方案1】:

    应用程序上下文不是一个文件——它是 Spring 用来描述应用程序整个状态的术语。所以这个错误意味着Spring因为缺少数据库配置而无法启动你的应用程序。

    【讨论】:

    • @LeaL 它很可能是一个 applicationContext.xml。并且可能有一个单独的应用程序上下文用于单元测试(测试数据库)。如果应用程序本身运行,您已经有了一半的解决方案。
    • 嗨,@slauth,在示例项目中,数据库配置写在应用程序中。属性包括 IP 地址、用户名和密码。在这种情况下,将应用上下文的链接更改为application.properties 会解决这个问题吗?对吗?
    • 您还需要包含依赖项mysql-connector-java
    • @Joop Eggen 感谢您的回复,我尝试在与测试类相同的文件夹中创建应用程序 Context.xml!
    • src/test/resources/ 将是使用 maven 时的正确位置。
    【解决方案2】:

    看起来您正在使用 maven (src/main/java)。在这种情况下,将 applicationContext.xml 文件放在 src/main/resources 目录中。它将被复制到类路径目录中,您应该可以使用

    @ContextConfiguration("/applicationContext.xml")
    

    普通路径,例如“context.xml”,将被视为来自定义测试类的同一包中的类路径资源。以斜杠开头的路径被视为完全限定的类路径位置,例如“/org/example/config.xml”。 因此,在引用类路径根目录中的文件时添加斜杠很重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      相关资源
      最近更新 更多