2016-11-23 3 views
0

Avec TestNG il est possible d'inclure/exclure des méthodes spécifiques dans le fichier xml testng comme suit:Comment inclure uniquement des méthodes spécifiques à TestNG en utilisant une usine

<classes> 
    <class name="WebTest"> 
    <methods> 
     <include name="testMethod1"/> 
    </methods> 
    </class> 
</classes> 

Lorsque vous utilisez une usine pour fournir des instances de WebTest la documentation indique que vous ne devez inclure la classe d'usine dans le fichier XML, comme suit:

<classes> 
    <class name="WebTestFactory" /> 
</classes 

le problème est que lors de l'utilisation d'une usine, TestNG exécute toutes les méthodes annotées de la classe WebTest. Ce que je voudrais faire quelque chose comme ceci:

<classes> 
    <class name="WebTestFactory"> 
    <methods> 
     <include name="testMethod1"/> 
    </methods> 
    </class> 
</classes> 

testMethod1 est une méthode appartenant à la classe WebTest, et où les instances de WebTest sont renvoyés par le WebTestFactory.

Cependant, chaque fois que j'essaye ce TestNG se plaint que WebTestFactory n'inclut pas testMethod1.

Existe-t-il un moyen de spécifier l'inclusion/exclusion de méthode dans le fichier XML lors de l'utilisation d'une fabrique avec TestNG?

Répondre

0

Comme je sais qu'il n'est pas possible de filtrer la méthode d'une usine. Inclure/Exclure est utilisé lorsque vous mélangez une fabrique et des méthodes de test dans la même classe. J'ai ouvert un billet sur le besoin: https://github.com/cbeust/testng/issues/1253 N'hésitez pas à commenter là. Pour contourner le problème, vous pouvez essayer de mettre en œuvre a method interceptor qui désactivera les méthodes de test en fonction de votre logique métier (par exemple, les propriétés du système).

+0

Merci pour la réponse, et pour l'ouverture du problème! Pour l'instant un fichier de configuration de quelque sorte + intercepteur de méthode semble être une bonne option. –