testng de passage de liste de parmeters dans testng.xml
Serait-il possible de passer d'une liste à l'testNG paramètres. Ci-dessous est un exemple de code
Exemple: en Essayant de passer à la liste des numéros au format XML. Vous ne savez pas si TestNG ne prend pas en charge cette fonctionnalité. Ou ai-je raté quelque chose?
<suite name="Suite" parallel="none">
<test name="Test" preserve-order="false">
<parameter name="A" value="1"/>
<parameter name="B" value="2"/>
<parameter name="C" value="3"/>
<parameter name="D" value="{4,5}"/>
<classes>
<class name="TestNGXMLData"/>
</classes>
</test>
</suite>
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.thoughtworks.selenium.Selenium;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.*;
import com.thoughtworks.selenium.*;
public class TestNGXMLData {
@Test
@Parameters(value = { "A", "B", "C", "D" })
public void xmlDataTest(String A, String B, String C, ArrayList<String> ls) {
System.out.println("Passing Three parameter to Test " + A + " and " + B + " and " + C);
Iterator it = ls.iterator();
while (it.hasNext()) {
String value = (String) it.next();
}
}
}
Grâce,
Siva
Vous devez vous connecter pour publier un commentaire.
Vous pouvez transmettre uniquement les types de base comme cela, alors vous devez déclarer votre dernier paramètre comme une "Chaîne", puis "convertir" {3, 4}" à une Liste. Je suggère d'utiliser "3 4" au lieu et simplement analyser avec String#split.
Si vous souhaitez passer plus de paramètres complexes et vous ne voulez pas vous embêter avec de la conversion, de l'interrupteur à l'aide d'un @DataProvider.
De la manuel,
@Parameter
peut être utilisé pour de simples paramètres. Pour les objets complexes, vous devriez regarder@Dataprovider