3

我们的测试套件正在快速增长,我们已经达到了我们更多功能测试依赖于其他系统的地步。

我们使用 gradle 测试任务使用包含和排除过滤器运行这些测试,但这变得很麻烦,因为我们必须以特定方式命名我们的测试。

我们目前的方法是按以下方式命名我们的测试:

class AppleSingleServiceTest {}
class BananaMultiServiceTest {}
class KiwiIntegrationTest {}

然后使用在相关任务中包含测试

include '**/*SingleServiceTest.class'
include '**/*MultiServiceTest.class'
include '**/*IntegrationTest.class'

是否可以通过查看注释在 gradle 中找到测试类?

@SingleServiceTest
public class AppleTest {}

我认为任何未注释的测试都将作为正常的单元测试运行,因此如果您忘记注释更多功能测试,它将失败

单个服务测试的一个示例是 selenium 测试,其中 SUT 的任何外部依赖项都被存根

多服务测试的一个例子是一些但可能不是所有的外部依赖没有被存根

4

3 回答 3

5

Gradle 1.6开始,Gradle 支持使用 JUnit 选择测试@Category,如下所示:

test {
    useJUnit {
        includeCategories 'org.gradle.junit.CategoryA'
        excludeCategories 'org.gradle.junit.CategoryB'
    }
}

更多细节可以在docs中找到。

于 2013-08-07T08:04:22.510 回答
1

您要求的功能目前不存在,但您可以在http://forums.gradle.org提出功能请求。或者您可以使用(繁琐的) JUnit @Category,这需要您定义测试套件。

于 2012-11-30T12:57:20.077 回答
0

我也有类似的需求来过滤带有注释的测试。我最终设法创建了一个解决方案。它张贴在这里

于 2014-04-02T18:19:18.263 回答