Spring boot maven插件:包含测试资源
Posted
技术标签:
【中文标题】Spring boot maven插件:包含测试资源【英文标题】:Spring boot maven plugin: include test resources 【发布时间】:2019-04-25 22:39:18 【问题描述】:我的目录结构如下:
src
|
|___ main
|
|___ test
|
|___resources
在 pre-integration-test 阶段运行启动目标(spring-boot:start,不同于 spring-boot:run)时,我想将来自测试资源的所有文件包含在类路径中。
我的 pom.xml 是:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
<configuration>
<wait>1000</wait>
<maxAttempts>30</maxAttempts>
</configuration>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
我尝试了包括标志 addResources
或 useTestClasspath
在内的成功尝试,即使阅读文档 (https://docs.spring.io/spring-boot/docs/current/maven-plugin/start-mojo.html),我也真的无法弄清楚它们应该如何工作。
提前致谢。
【问题讨论】:
使用 Maven 配置文件并创建一个测试配置文件不是更好的主意吗?我认为这就是使用 Maven 的方式。 【参考方案1】:这是一个有效的 Maven 配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.2.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
<configuration>
<classesDirectory>$project.build.testOutputDirectory:$project.build.outputDirectory</classesDirectory>
<wait>1000</wait>
<maxAttempts>30</maxAttempts>
</configuration>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
【讨论】:
以上是关于Spring boot maven插件:包含测试资源的主要内容,如果未能解决你的问题,请参考以下文章
无法理解 Spring Boot 如何使用 maven 管理集成测试。它是不是使用故障安全插件?
使用 maven 插件设置时 Spring Boot 配置文件不活动
如何使用 Spring Boot 测试 Maven 模块项目