Dhe*_*rik 5 java spring integration-testing maven spring-boot
我试图了解 spring boot 如何管理集成测试。
基本上,在任何具有集成测试的项目中,对此负责的插件是 maven故障安全插件。默认情况下,它执行所有后缀为IT 的类。每个例子:MyServiceIT.java。
嗯,这是第一个问题。我发现的大多数 Spring Boot 运行集成测试的示例(甚至在官方文档或 Spring 博客中),测试类都有后缀Test。所以,我知道它们将由 maven surefire插件运行,这对于集成测试来说是不可取的。
但混乱还没有结束。
如果目标是运行集成测试,则spring boot maven 插件文档没有说明故障安全插件。但是,如果您想跳过它们,故障安全插件会出现在文档中。
现在,我在 Spring Boot 集成测试中使用带有后缀IT的 maven 故障安全插件,在万无一失的情况下忽略它们:
<plugin>
<!-- for unit tests -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/*IT.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<!--for integrations tests-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skipITs>${skipITs}</skipITs>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但是另一位同事Test在他的 Spring Boot 集成测试中(在另一个项目中)使用了这个后缀,并向我声称这是正确的后缀¹。
所以......我做错了什么?Spring Boot 的这个“奇怪”设置如何用于集成测试?
¹。声纳能够获得他的测试覆盖率,而我的测试则不能。我们正在使用 Cobertura maven 插件。我认为这样做的原因是他的测试运行在surefire插件上,但在故障安全插件上我需要在pom.xml上进行额外配置,也许,在Sonar上也是如此。
小智 0
我认为您不需要使用故障安全插件。spring boot 文档告诉您使用的 spring-boot-starter-parent 参考包含任何人都可以考虑使用的所有内容,包括厨房水槽。
故障安全插件是进行集成测试的一种方法。这让您需要进行一些手动配置。
但如果您使用 Spring Boot,则应该使用 Spring Boot 附带的内置功能。毕竟这就是使用 Spring Boot 的全部意义。他们为你做了很多事情。我怀疑您在 Spring Boot 文档中没有看到太多有关 Spring 文档中提到的故障安全插件的原因是他们不希望人们使用它。
请参阅以下教程。它很简单,但这是一个很好的起点:
| 归档时间: |
|
| 查看次数: |
2216 次 |
| 最近记录: |