Java 如何在单个梯度测试执行中拥有单元/集成/功能管道

Java 如何在单个梯度测试执行中拥有单元/集成/功能管道,java,gradle,Java,Gradle,我有一个使用springboot的演示项目,可以在JUnit测试中设置完整的服务器:。Gradle无论如何都很快,但是这里的构建引入了WebDriver,它仍然很快(20秒),这就是为什么我要做这个演示 我现在只有一个WebDriver测试类(有三种测试方法)。我将添加纯单元测试(没有线程,没有IO)和集成测试(确实做IO,但没有UI) 我想配置一个执行单元测试、集成测试和功能测试的测试。是的,按照特定的顺序,正如“测试金字塔”所暗示的,并在围绕连续输送管道的所有文档中明确指出的那样 我还希望在

我有一个使用springboot的演示项目,可以在JUnit测试中设置完整的服务器:。Gradle无论如何都很快,但是这里的构建引入了WebDriver,它仍然很快(20秒),这就是为什么我要做这个演示

我现在只有一个WebDriver测试类(有三种测试方法)。我将添加纯单元测试(没有线程,没有IO)和集成测试(确实做IO,但没有UI)

我想配置一个执行单元测试、集成测试和功能测试的测试。是的,按照特定的顺序,正如“测试金字塔”所暗示的,并在围绕连续输送管道的所有文档中明确指出的那样

我还希望在每一次转型中都有失败的机会。这意味着,如果单元或集成测试失败,则无需运行WebDriver/功能测试


如何在Gradle中配置管道阶段,使用fast fail,以及使用什么注释?

如果您使用的是像Jenkins这样的连续集成工具,那么您需要在管道中为单元配置单独的构建作业,集成和功能测试,并使它们在前一个作业成功的情况下按顺序运行。它们都可以使用各自的gradle任务单独运行。例如:

./gradlew test
./gradlew integrationTest
./gradlew functionalTest
这样,您就可以更清楚地看到故障点。根据您的场景,每个作业可以执行一个或多个测试

但是,如果您想要一个命令来执行所有任务,那么将它们包装到另一个gradle任务中。请记住,这将大大降低能见度