Я пытаюсь выполнить Gradle некоторые тесты, определенные с помощью файла testng.xml. Мой файл testng.xml выглядит так:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="mySuite" verbose="1">
<listeners>
<listener class-name="mypackage.MyListener" />
<listener class-name="mypackage.TestOrderer" />
</listeners>
<test name="Tests">
<classes>
<class name="mytestpackage.CrazyTest1"/>
<class name="mytestpackage.CrazyTest2"/>
<class name="mytestpackage.CrazyTest3"/>
</classes>
</test>
</suite>
Так зачем мне это нужно? Я хочу, чтобы мои тесты были организованы таким образом, который был определен аннотациями, аналогичными тем, которые были перечислены в здесь. Как вы могли догадаться, TestOrderer является IMethodInterceptor.
Здесь проблема, Gradle, кажется, захватывает мой файл testng.xml и очищает тестовый каталог, чтобы найти те тесты, которые он хочет выполнить. Даже если я отключу это, он не сможет выполнить соответствующие методы. Здесь то, что я думаю, должно работать, но просто, не делает.
test {
useTestNG()
options.suites("src/test/resources/crazyTestNG.xml")
# Adding
# scanForTestClasses = false
# causes zero tests to be executed, since the class names don't end in Test
}
Кажется, что это должно быть без проблем... развивает процесс TestNG и позволяет ему работать, но я не могу понять, как сказать Gradle, чтобы уйти с дороги и просто выполнить мои тесты.