基于抽象类在gradle中分离集成与单元测试

时间:2018-03-28 18:17:16

标签: gradle groovy junit spock

我试图将我的gradle / spock测试分成两组:

  1. 单元测试
  2. 集成测试
  3. 我尝试使用jUnit' @Category。在build.gradle我为集成/ e2e测试创建了任务:

    task e2eTest(type: Test) {
        useJUnit {
            includeCategories 'com.foo.bar.baz.E2ESpec'
        }
    }
    

    @Category(E2ESpec)标记我的基础抽象类,但它不起作用。

    我注意到继承有效,但只有单级继承:

    @Category(E2ESpec)
    abstract class AbstractSpec {...}
    
    class ActualSpec extends AbstractSpec {...}
    

    但不适用于以下情况:

    @Category(E2ESpec)
    abstract class AbstractSpect {...}
    
    abstract class AnotherAbstractSpec extends AbstractSpec {...}
    
    class ActualSpec extends AnotherAbstractSpec {...}
    

    知道怎么解决吗?

    PS。我有许多课程延长AbstractSpec,并且会出现新课程,所以我不希望每个规范都有@Category。也许存在纯粹的gradle解决方案?

1 个答案:

答案 0 :(得分:0)

使用相应的任务为集成测试创建新的源集。见How do I add a new sourceset to Gradle?