我们的测试套件正在快速增长,我们已经达到了一个更功能测试依赖于其他系统的地步。
我们使用 gradle 测试任务通过包含和排除过滤器运行这些测试,但这变得很麻烦,因为我们必须以特定的方式命名我们的测试。
我们目前的方法是按以下方式命名我们的测试:
class AppleSingleServiceTest {}
class BananaMultiServiceTest {}
class KiwiIntegrationTest {}
然后在相关任务中包含测试
include '**/*SingleServiceTest.class'
include '**/*MultiServiceTest.class'
include '**/*IntegrationTest.class'
是否有可能通过查看注释在 gradle 中找到测试类?
@SingleServiceTest
public class AppleTest {}
我认为任何未注释的测试都将作为正常的单元测试运行,因此如果您忘记注释功能更强大的测试,它将失败
单个服务测试的一个示例是硒测试,其中 SUT 的任何外部依赖项都是存根的
多服务测试的一个示例是,某些(可能不是全部)外部依赖项未存根
1.6 开始,Gradle 支持使用 JUnit @Category
选择测试,如下所示:
test {
useJUnit {
includeCategories 'org.gradle.junit.CategoryA'
excludeCategories 'org.gradle.junit.CategoryB'
}
}
有关更多详细信息,请参阅文档。
您请求的功能当前不存在,但您可以在 http://forums.gradle.org 提出功能请求。或者你可以使用(繁琐的)JUnit @Category
,它要求你定义测试套件。
我有类似的需要用注释过滤测试。我最终设法创建了一个解决方案。它张贴在这里。