TestNG DataProvider test de lecture de données à partir de la testng.xml fichier de config?
Est-il possible pour un TestNG DataProvider pour lire les données de test de la testng.xml fichier de config? Ou est-ce irréaliste pour une raison quelconque? Je voudrais être capable de lire des données de test à partir de ce fichier à la suite du niveau et le niveau de la classe.
Donc, étant donné un testing.xml fichier comme ceci (je suis pas sûr de ce qui est réaliste ou pas), comment pourrais-je faire cela? J'ai écrit un Fournisseur à l'aide de XStream (ou Jackson) avant et donc je suis bien versé dans mon propre coutume .xml format, mais s'en tenir à la stricte format de l'testing.xml est là où je suis inquiet à ce sujet.
La suite testing.xml est évident invalide, mais j'essaie juste de montrer le genre de chose que je voudrais faire:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestAll">
<parameter name="hubUrl" value="http://localhost:4444/wd/hub"/>
<parameter name="reportFile" value="CustomReport.html"/>
<test name="etsy">
<parameter name="reportFile" value="CustomReport.html"/>
<classes>
<class name="qa.examples.suite.TestSearch">
<parameter name="appUrl" value="http://etsy.com" type="java.lang.String"/>
<parameter name="browser" value="Firefox" type="java.lang.String"/>
<parameter name="testEnabled" value="true" type="java.lang.Boolean"/>
<methods>
<include name="testEtsySearch"/>
<tests>
<test>
<parameter name="testNum" value="1" type="java.lang.Integer"/>
<parameter name="searchTerm" value="cell phone" type="java.lang.String"/>
<parameter name="searchTerm" value="batteries" type="java.lang.String"/>
</test>
<test>
<parameter name="testNum" value="2" type="java.lang.Integer"/>
<parameter name="searchTerm" value="buttons" type="java.lang.String"/>
<parameter name="searchTerm" value="metal" type="java.lang.String"/>
</test>
</tests>
</include>
</methods>
</class>
<class name="qa.examples.suite.TestFilters" />
</classes>
</test>
</suite>
Donc, c'est quelque chose comme cela possible? Si oui, comment le feriez-vous?
OriginalL'auteur djangofan | 2014-01-22
Vous devez vous connecter pour publier un commentaire.
Essayer de passer ITestContext en tant que fournisseur de données du paramètre.
Quelque chose comme:
Suite xml
de la classe de test
}
Sortie
voir mise à jour de réponse
Une fois que j'ai réalisé que toutes les méthodes de Configuration dans TestNG peut prendre une sorte de contexte argument, tout un monde s'est ouvert pour moi. Merci!
OriginalL'auteur user1058106
Je suis actuellement en train de passer seulement Suite au Niveau des Paramètres de mon XML. C'est comment j'allais le faire -
Je voudrais créer une classe - readParamsFromXML.
Je voudrais prolonger une logique similaire à lire params au niveau du Test & au niveau de la Méthode en créant des méthodes comme - getTestLevelParamsFromXML & getMethodLevelParamsFromXML. Je voudrais ajouter des annotations comme @BeforeClass & @BeforeMethod respectivement pour les méthodes ci-dessus.
Maintenant, tous mes cas de test doit s'étendre readParamsFromXML classe. Cette façon de bains, test & niveau de la classe de paramètres passés à partir de XML pourrait être disponible dans les méthodes de test
Peut-être pas la meilleure façon de faire les choses. Mais fonctionne parfaitement pour moi.
OriginalL'auteur praneel