如何从命令行使用Gradle运行测试套件

tam:

我正在尝试使用gradle通过以下命令运行测试,但无法正常工作

gradle cleanTest test --tests my.package.TestSuite

我的测试套件如下所示

@RunWith(Suite.class)
@Suite.SuiteClasses({
    ATests.class,
    BTests.class,
    CTests.class
})
public class MySuite {
  /* placeholder, use this to contain all integration tests in one spot * */
}

尝试运行以下命令的方法有效,但更糟糕的是,它每次运行两次测试。一次,然后再次在相同名称空间的测试套件下

gradle clean test --tests my.package.*

我可以删除测试套件并以这种方式进行操作,但是我想更好地了解这里发生了什么以及为什么我不能告诉它直接运行测试套件。

柠檬凝乳 :

以下为我在本地工作。

gradle -Dtest.single=MySuite clean test

与所使用的更高级的过滤方法相比,这实际上使用了不同的方法(测试包含)--test

如参考链接中所述,上面的示例通过创建表单的文件包含模式来工作,**/MySuite*.class--test尝试从扫描的测试集中选择测试。我怀疑Gradle中实现的通用测试过滤与JUnit Suite运行器周围的特定情况之间存在一些无法预料的相互作用。

话虽如此,连Gradle的文档都警告说上述方法已被取代,实际上,我可能会回应@Opal的评论,并定义一个明确的任务来为给定的测试阶段运行套件。例如,以下运行方式gradle clean testSuite可能会运行集成套件。

task testSuite(type: Test) {
   include 'MySuite.class'  
}

参考文献:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章