Cederic,
Я должен был создать аккаунт с первого дня, я больше не могу редактировать свое старое сообщение или отвечать на комментарии (на данный момент). Позвольте мне немного расширить это.
Вот пример того, что я придумал до сих пор. Наверное, я ответил на свой вопрос ... это работает, но немного неприятно.
Мой вопрос сейчас, у меня все тесты на одном заводе. Это не хорошо по нескольким причинам. Во-первых, я должен добавить их все вручную (или поместить их в задумчиво). Во-вторых, я должен запустить все по существу как один пакет. Есть идеи?
package example2;
import java.lang.reflect.Method;
import java.util.HashMap;
import org.testng.annotations.*;
public class WebTestBase {
protected String host, username, password;
protected HashMap<String, Object[][]> dataSet;
public WebTestBase(String host, String username, String password, HashMap<String, Object[][]> dataSet) {
this.host = host;
this.username = username;
this.password = password;
this.dataSet = dataSet;
}
@DataProvider(name="dataSet")
public Object[][] dataSet(Method m) {
return dataSet.get(m.getName());
}
@BeforeMethod
public void login() {
System.out.println("Logging in to " + host + " with " + username + ":" + password);
}
@AfterMethod
public void logout() {
System.out.println("Logging out!");
}
}
package example2;
import java.util.HashMap;
import org.testng.annotations.Factory;
public class WebTestFactory {
@Factory
public Object[] factory() {
HashMap<String, Object[][]> dataSetOne = new HashMap<String, Object[][]>();
dataSetOne.put("searchRoster", new Object[][] {
{"mcguire", "McGuire, Mark"},
{"ruth", "Ruth, Babe"}
});
HashMap<String, Object[][]> dataSetTwo = new HashMap<String, Object[][]>();
dataSetTwo.put("addPlayer", new Object[][] {
{"Sammy Sosa", 0.273}
});
Object[] tests = new Object[] {
new SearchTest("localhost", "user", "pass", dataSetOne),
new AddTest("localhost", "user", "pass", dataSetTwo)
};
return tests;
}
}
package example2;
import java.util.HashMap;
import org.testng.annotations.Test;
public class SearchTest extends WebTestBase {
public SearchTest(String host, String username, String password,
HashMap<String, Object[][]> dataSet) {
super(host, username, password, dataSet);
}
@Test(dataProvider="dataSet")
public void searchRoster(String searchTerm, String playerName) {
System.out.println("Searching for " + searchTerm);
System.out.println("I found " + playerName + " in the search results!");
}
}
package example2;
import java.util.HashMap;
import org.testng.annotations.Test;
public class AddTest extends WebTestBase {
public AddTest(String host, String username, String password,
HashMap<String, Object[][]> dataSet) {
super(host, username, password, dataSet);
}
@Test(dataProvider="dataSet")
public void addPlayer(String playerName, double battingAvg) {
System.out.println("Adding " + playerName + " with avg " + battingAvg);
}
}