3 votes

Test NG - passer un paramètre avec setTestClasses()

J'utilise l'approche programmatique pour exécuter les tests inclus dans la classe Courier.

TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Courier.class });
testng.addListener(tla);
testng.run();

Comment est-il possible de passer des paramètres aux tests inclus dans cette classe ? Par exemple

testng.setTestClasses(new Class[] { Courier("parameter").class });

Courrier :

public class Courier {
@Parameter(passed parameter)
@Test
public void Courier_Test(String parameter){
    System.out.println(parameter);
}   

}

Merci de votre aide !

3voto

Feanor Points 1754

Quelques idées :

Même si vous exécutez les tests de manière programmatique, vous devriez être en mesure d'invoquer TestNG sur un fichier testng.xml dossier. Ajoutez des paramètres au fichier comme suit (à partir du fichier la documentation ) :

<suite name="My suite">
   <parameter name="parameter"  value="Foo"/>
   <test name="Courier Test" />
   < ... >

Si, pour une raison quelconque, vous n'utilisez pas de fichier testng.xml, vous pouvez utiliser un DataProvider, soit en tant que méthode dans la classe de test, soit en tant que classe statique, en fonction de ce que vous devez faire. Les exemples ci-dessous (également tirés de la page la documentation ).

DataProvider dans la classe :

//This method will provide data to any test method that declares
//that its Data Provider is named "test1"
@DataProvider(name = "test1")
public Object[][] createData1() {
   return new Object[][] {
     new Object[] { "Parameter" }
   }
}

//This test method declares that its data should be supplied 
//by the Data Providernamed "test1"
@Test(dataProvider = "test1")
public void Courier_Test(String parameter) {
 System.out.println(parameter);
} 

DataProvider dans la classe externe :

public static class StaticProvider {
  @DataProvider(name = "create")
  public static Object[][] createData() {
    return new Object[][] {
      new Object[] { "Parameter" }
    }
  }
}

public class Courier {
  @Test(dataProvider = "create", dataProviderClass = StaticProvider.class)
  public void Courier_Test(String parameter) {
    // ...
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X