Remarque : seule la dernière version est prise en charge
6.10
Avoir plus d'une méthode dans une classe avec le même nom et une signature différente (surcharge de méthode) et en sélectionnant (en double-cliquant sur le nom de la méthode) et en exécutant une méthode de test, il devrait exécuter la méthode sélectionnée seule.
Il exécute toutes les méthodes portant ce nom.
import org.testng.ITestContext;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class TestNGIssue {
<strong i="17">@Test</strong>
public void test() {
System.out.println("test without param");
}
<strong i="18">@Test</strong>
public void test(ITestContext context) {
System.out.println("test with param as itestcontext");
}
@Test(dataProvider = "data")
public void test(String name) {
System.out.println("test with param as string");
}
@DataProvider(name = "data")
public Object[][] dataprovider() {
return new Object[][] { { "name" } };
}
}
Lors de l'exécution en tant que fichier XML, il exécutera toutes les méthodes.
Est-ce également un comportement attendu avec Eclipse runner ?
@Prakash-Saravanan - Je pense que c'est le comportement attendu. TestNG recourt à la réflexion pour trouver des méthodes, mais il ne différencie pas les méthodes en fonction de leurs signatures, mais recourt à la recherche de méthodes basées UNIQUEMENT sur les noms. Donc, pour l'OMI, ce n'est pas un problème, mais TestNG fonctionne comme prévu.
Cela pourrait être une amélioration de la sélection des tests ou, au moins, testng peut avertir s'il trouve de nombreuses méthodes avec le même nom.
@krmahadevan @cbeust Qu'en pensez-vous ?
@juherr - Je pense qu'il est logique d'ajouter un avertissement (au moins) informant l'utilisateur de plusieurs versions surchargées de la même méthode de test.
Commentaire le plus utile
@Prakash-Saravanan - Je pense que c'est le comportement attendu. TestNG recourt à la réflexion pour trouver des méthodes, mais il ne différencie pas les méthodes en fonction de leurs signatures, mais recourt à la recherche de méthodes basées UNIQUEMENT sur les noms. Donc, pour l'OMI, ce n'est pas un problème, mais TestNG fonctionne comme prévu.