如何从命令行使用Gradle运行测试套件
我正在尝试使用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' }
参考文献: