我可以运行从gradle扩展特定超类的所有测试吗?

时间:2017-10-03 07:44:33

标签: java gradle

我手边有一个相对较大的代码库。它由大量集成测试和少量或两个抽象测试基类组成。由于我目前正在使用内存中的h2而不是Oracle来运行所有这些测试,因此能够运行给定类层次结构的测试以便我可以一次修复一个层次结构。

理想情况下,类似于:

$ gradlew test -DtestHierarchy=AbstractTestSuperClass

将运行从AbstractTestSuperClass

延伸的所有测试

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:2)

似乎您正在寻找的功能已经是Gradle列表中请求和内联的功能。

Gradle关于Test Filtering的文档说明了Gradle现在处理的一些测试过滤方案,有些将在未来版本中得到满足:

  
      
  • 在特定测试方法的级别过滤;执行单一测试方法
  •   
  • 根据自定义注释(未来)进行过滤
  •   
  • 根据测试层次结构进行过滤;执行扩展某个基类(未来)的所有测试
  •   
  • 根据某些自定义运行时规则进行过滤,例如系统属性的特定值或某种静态(未来)
  •   

或者现在,您可以将测试类命名为其分组,以匹配任何TestFilters.

另外,在comment中提到的旁注中,您应该考虑重构代码,将这些类放入一个package。拥有大量代码库的IMO不应该是一个问题,但将它保持不对齐将永远是。