Comment puis-je dire à Gradle d'utiliser mon fichier testng.xml pour les classes de test et la commande?

Je suis tente de faire Gradle exécuter certains tests définis à l'aide d'un testng.xml fichier. Mon testng.xml fichier ressemble à ceci:

<!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>

Alors pourquoi n'ai-je besoin? Je veux m'assurer que mes tests sont organisés d'une manière qui est défini par les annotations similaire à celle qui a été répertorié ici. Comme vous pouvez le deviner, TestOrderer est un IMethodInterceptor.

Voici le problème, Gradle semble prendre plus de mon testng.xml fichier et en raclant le répertoire de test pour trouver les épreuves qu'il souhaite exécuter. Même si je désactiver cette option, il ne parvient pas à exécuter les méthodes de façon appropriée. Voici ce que je pense devrait fonctionner, mais juste, qui ne fonctionne pas.

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
}

Il semble que ce devrait être une évidence...la fourche TestNG processus et de le laisser courir, mais je ne peux pas comprendre comment le dire à Gradle pour sortir de la voie et simplement l'exécution de mes tests.

source d'informationauteur Mike Cornell | 2011-01-21