微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用环境变量进行 Spring Boot 集成测试

如何解决使用环境变量进行 Spring Boot 集成测试

我正在使用 Java 8、Spring Boot 2.4.0 开发一个多模块 Maven 项目。我想测试调用第 3 方服务的模块之一。我正在使用 wiremock 来模拟该 3rd 方服务调用并创建了一个 Spring Boot 集成测试类。我的班级与我的 XYZService 班级在同一个包中。我的测试在 src/test/... 看起来像这样。

@RunWith(springrunner.class)
@SpringBoottest(classes = SpringApplicationClassWithMainMethod.class)
public class XYZServiceIntegrationTest {

@Rule
public wiremockRule externalService = new wiremockRule();

@Test
public void test1() {...}

@Test
public void test2() {...}
}

当我在我的 Eclipse 中运行 Maven 构建时(干净 + 安装)。我的构建没有检测到集成测试所在的 maven 模块中存在的测试。同一模块中的其他单元测试也没有被检测到(注意:在添加集成测试类之前,单元测试正在工作)。 Maven 说测试运行:0。当我右键单击文件并作为 JUnit 测试(Junit 4)运行时,集成测试工作正常。此外,为了成功加载应用程序上下文(我尝试通过代码和其他堆栈溢出帖子没有任何效果)。还有一件事要通知我的 Maven 只使用 Maven surefire 插件来运行测试。我不知道我们是否需要为我的目的使用 Maven 故障安全插件(当我在测试类顶部添加 2 个注释时,我的测试是否被视为集成测试?)。有人可以帮助我提供有关如何构建父项目的任何建议。

解决方法

将 maven-failsafe-plugin 添加到我的孩子 pom 中起作用了。在父 pom 中,我添加了 maven-failsafe-plugin 的执行目标,在我继承了该插件的子 pom 中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。