ich schrecklich falsch sein könnte (und wenn ich bin, ich bin sicher, dass jemand anderes Ihnen eine bessere Lösung geben wird); aber ich glaube nicht, dass du mit testNG Guruswamy erreichen kannst, wonach du suchst. Ich habe gerade getestet Ihr Versuch, mit diesen Datenprovider
@DataProvider(name = "login8users")
public Object[][] login8usersForStackOverflow() {
return new Object[][] {
{ "[email protected]", "pass" },
{ "[email protected]", "pass"},
{ "[email protected]", "pass"},
{ "[email protected]", "pass"},
{ "[email protected]", "pass"},
{ "[email protected]", "pass"},
{ "[email protected]", "pass"},
{ "[email protected]", "pass"},
};
}
Und einen Parameter übergeben Browser aufgerufen aus der XML-Datei. Ich habe bemerkt, dass wenn Sie DataProvider und Parameter unter der gleichen @ Test Annotation; ob Sie den Fehler erhalten, den Sie uns oben gezeigt haben, oder die XML-Parameter vollständig ignoriert werden (scheint, dass DataProvider sie ersetzt). hier Dann ist die Testmethode:
@Test(dataProvider="login8users")
@Parameters({"browser"})
public void login8(String dataProvider1, String dataProvider2) {
System.out.println("Email from data provider is..: "+dataProvider1);
System.out.println("Pass from data provider is..: "+dataProvider2);
}
Und hier ist die Ausgabe:
[TestNG] Running:
C:\projects\test\currentTest.xml
Email from data provider is..: [email protected]
Pass from data provider is..: pass
Email from data provider is..: [email protected]
Pass from data provider is..: pass
Email from data provider is..: [email protected]
Pass from data provider is..: pass
Email from data provider is..: [email protected]
Pass from data provider is..: pass
Email from data provider is..: [email protected]
Pass from data provider is..: pass
Email from data provider is..: [email protected]
Pass from data provider is..: pass
Email from data provider is..: [email protected]
Pass from data provider is..: pass
Email from data provider is..: [email protected]
Pass from data provider is..: pass
===============================================
Regression
Total tests run: 8, Failures: 0, Skips: 0
===============================================
Daher müssen Sie nach alternativen Lösungen suchen. Einer von ihnen könnte laden den Parameter früher, (vielleicht sogar in der @BeforeClass) übergeben Sie den Parameter als globale Var in Ihrem Test, damit Sie darauf zugreifen können. So etwas wie dies für eine Lösung:
public static String globalVarScope;
@BeforeClass
@Parameters({"xmlParam"})
public void initialSetup(String xmlParam) {
System.out.println("Parameter from XML is..: "+xmlParam);
globalVarScope= xmlParam;
}
@Test
public void useMeAnywhere() {
System.out.println("Hey, I passed the param earlier and I can use it anywhere now :) ..: "+globalVarScope);
}
@Test(dataProvider="login8users")
@Parameters({"browser"})
public void login8(String dataProvider1, String dataProvider2) {
System.out.println("Email from data provider is..: "+dataProvider1);
System.out.println("Pass from data provider is..: "+dataProvider2);
}
So hoffentlich jetzt können Sie Ihr gewünschtes Ergebnis erzielen, lassen Sie mich wissen, wenn Sie nicht weiterkommen. Hier ist die endgültige Ausgabe nach dem separaten Ausführen des Parameters:
Viel Glück!
Dank Xwris hilft es ... –
Kein Problem Guruswamy, es ist ein Vergnügen, wenn ich Ihnen irgendwie helfen konnte. Wäre dankbar, wenn Sie die Antwort auch verbessern können (drücken Sie den Pfeil nach oben neben der Antwort)? Nur um diese moralische Befriedigung zu bekommen - Danke im Voraus! :) –