Я пытаюсь, чтобы 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, чтобы найти тесты, которые он хочет выполнить. Даже если я отключу это, он не сможет выполнить методы соответствующим образом. Вот то, что я думаю, должно работать, но просто не работает.
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, чтобы он ушел с дороги и просто выполнил мои тесты. *