2011-04-01 56 views
10

我试图修复我们凌乱的测试运行失败,不幸的是,我对gradle很陌生。我们现在有testng,junit,并且我想为混合添加一些spock测试。我不太确定当我输入“gradle test”时,gradle如何确定运行哪些测试。我如何防止testng & /或junit测试运行?我怎样才能让gradle开始运行我的spock测试?选择特定的测试在gradle中运行

回答

14

默认情况下,test任务运行它可以找到的所有JUnit测试,其中包括任何Spock测试。为了使其运行TestNG进行替代,将任务配置如下:

test { 
    useTestNG() 
} 

如果你有两个JUnit和TestNG的测试,你需要两个测试任务,每一个测试框架。

要运行测试的子集,请使用-Dtest.single系统属性。有关更多信息,请参见Gradle User Guide中的相应部分。

+0

我看着你所引用的文件,但它是相当混乱。例如,地球上做什么: “gradle -Dtest.single = a/b/test” 是什么意思?我试图阻止运行标准junit测试,但运行spock和testng测试。我没有任何运气。 – 2011-04-04 18:06:01

+2

从文档:该testNamePattern将被用于形成'**/testNamePattern * .class'的包括图案。因此'a/b /'选择包'a.b'下的所有测试类。 (请注意,'了'不一定必须是根包)。 运行斯波克和TestNG但不是JUnit测试,则需要两个任务(如上所述),并配置了JUnit任务只是包括Spock测试(通过包或类命名约定)。 – 2011-04-05 07:38:00

3
$> gradle test -Dtest.single=YourTestClass 
0

您可以提供使用命令行:

$> gradle test --tests org.somewhere.MyTestClass 

甚至

$> gradle test --tests org.somewhere.MyTestClass.my_test_case 
相关问题