测试模块中的文件夹结构

Den*_*nov 1 java testing spring integration-testing unit-testing

我也是 Spring 和测试的新手。我对 Spring Boot 项目中 Test 模块的文件夹结构有疑问。

以下项目结构是否适用于测试模块中的集成和单元测试?或者最好的做法是什么?谢谢。

project/
??? main
??? test
    ??? integration
    ?   ??? SomeTestIT.java
    ??? unit
        ??? SomeTestU.java
Run Code Online (Sandbox Code Playgroud)

dav*_*xxx 5

Spring 和 Spring Boot 没有关于测试类布局的具体建议。

因此,您应该遵循构建工具的约定,可能是 Gradle 或 Maven。
对于他们来说,src/test/java旨在包含要执行的测试类。保持它。

您可以在此目录中同时包含Test单元测试和IT集成测试,并使用后缀区分它们:单元测试和集成测试。
这些是单元测试集成测试的 Maven 约定。
通过坚持使用它们,您可以减少设置测试设施的工作量。

万无一失(单元测试)

夹杂物

默认情况下,Surefire 插件将自动包含所有具有以下通配符模式的测试类:

"**/Test*.java" - 包括其所有子目录和所有以“Test”开头的 Java 文件名。

"**/*Test.java" - 包括其所有子目录和所有以“Test”结尾的 Java 文件名。

"**/*Tests.java" - 包括其所有子目录和所有以“Tests”结尾的 Java 文件名。

"**/*TestCase.java" - 包括其所有子目录和所有以“TestCase”结尾的 Java 文件名。

故障安全插件(集成测试)

夹杂物

默认情况下,Failsafe 插件将自动包含所有具有以下通配符模式的测试类:

"**/IT*.java" - 包括其所有子目录和所有以“IT”开头的 Java 文件名。

"**/*IT.java" - 包括其所有子目录和所有以“IT”结尾的 Java 文件名。

"**/*ITCase.java" - 包括其所有子目录和所有以“ITCase”结尾的 Java 文件名。