繁体   English   中英

测试模块无法加载其 application.yml 文件

[英]test module cannot load its application.yml file

我有一个单独的模块用于应用程序模块的功能测试。 它的结构如下

└───functional-test
    ├───pom.xml
    └───src
        ├───test
            ├───java
            |   └─── some java testing class
            ├───resources
                └─── application.yml

请注意,没有主文件夹。 我的 pom 文件如下

     <build>
        <testResources>
            <testResource>
                <directory>${project.basedir}/src/test/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                </includes>
            </testResource>
        </testResources>
    </build>

    <dependencies>
        <!-- test dependencies -->
        <dependency>
            <groupId>com.github.tomakehurst</groupId>
            <artifactId>wiremock-jre8</artifactId>
            <version>2.27.2</version>
        </dependency>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>4.5.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>3.19.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
            <version>3.8.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.7.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>1.17.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webflux</artifactId>
            <version>5.3.20</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.projectreactor.netty</groupId>
            <artifactId>reactor-netty-http</artifactId>
            <version>1.0.19</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.projectreactor.netty</groupId>
            <artifactId>reactor-netty-http</artifactId>
            <version>1.0.19</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
            <version>2.0.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>5.3.4</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <properties>
        <java.version>1.8</java.version>
    </properties>

现在,我在 application.yml 文件下面放了一些东西作为测试

abc:
  def: "123" 

我假设以下代码应该给我“123”。 但是,它打印出 null。

@Component
@ConfigurationProperties("abc")
@TestPropertySource("classpath:application.yml")
@Data
public class TestProperties {

    private String def;
}


public class PropertyFuncTest extends BaseFunctionalTest {

    @Autowired
    TestProperties testProperties;

    @Test
    public void testProperty() {

        System.out.println(testProperties.getDef());
        ......
    }

}

@RunWith(SpringRunner.class)
@SpringBootTest
public abstract class BaseFunctionalTest {
    ......
}
   

看起来 application.yml 文件根本没有加载。 任何的想法?

我的不好,问题出在 pom 中,问题描述中没有显示。 我不小心将<packaging>pom</packaging>复制到了 pom.xml 中。 去掉(或者改成jar)后,yml文件读取成功。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM