如何在单个Gradle测试执行中使用单元/集成/功能管道

时间:2017-02-16 10:35:26

标签: java gradle

我有一个使用springboot的演示项目,可以在JUnit测试中设置一个完整的服务器:https://github.com/paul-hammant/todo-backend-spring4-java8。无论如何Gradle很快,但是这里的构建引入了WebDriver并且它仍然很快(20秒),这就是我制作演示的原因。

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

我想配置一个测试执行,进行单元测试,然后进行集成测试,然后进行功能测试。是的,按照特定的顺序,如“测试金字塔”所暗示的那样,并在围绕连续交付管道的所有文档中特别说明。

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

如何在Gradle中配置管道阶段,快速失败,以及要使用哪些注释?

1 个答案:

答案 0 :(得分:0)

如果您正在使用像Jenkins这样的持续集成工具,那么您需要在管道中为单元,集成和功能测试分别创建构建作业,并在前一个作业成功的条件下按顺序运行它们。所有这些都可以使用自己的gradle任务单独运行。例如:

./gradlew test
./gradlew integrationTest
./gradlew functionalTest

通过这种方式,您可以更好地了解故障点。根据您的情况,每个作业都可以执行一个或多个测试。

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