有没有办法从另一个java类运行TestNG测试。
private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
object originalArgument = ((CustomBackgroundWorker)sender).Argument;
// The rest of the stuff
if (e.Cancelled) { ... }
if (e.Error) {...}
...
}
我需要在具有不同参数的单个套件中运行相同的方法。(Inside for循环)
有可能吗?
另外,我看到dataprovider方法应该返回@Test
public void f(Integer n, String s) {
}
。这适用于具有两个参数的方法。我们可以发送两个以上的参数吗?
Object[][]
我试图通过使用一些TestNG类来实现它
@DataProvider
public Object[][] dp() {
return new Object[][] { new Object[] { 1, "a" }, new Object[] { 2, "b" }, };
}
@Test(dataProvider = "dp")
public void f(Integer n, String s, char c, double d, String s2) {
}
我使用下面的代码运行一次public static void main(String[] args) {
List<XmlClass> classes = new ArrayList<>();
classes.add(new XmlClass("com.test.PortalTest"));
XmlSuite suite = new XmlSuite();
suite.setName("Portal Test Suite");
XmlTest test = null;
for (int index = 0; index < 7; index++) {
test = new XmlTest();
test.setName("Portal Test - " + index);
test.setXmlClasses(classes);
test.addParameter("downloadFileIndex", String.valueOf(index));
suite.addTest(test);
}
List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestListenerAdapter testListenerAdapter = new TestListenerAdapter();
TestNG testNG = new TestNG();
Class[] classesClasses = {PortalTest.class};
testNG.setTestClasses(classesClasses);
testNG.setXmlSuites(suites);
testNG.addListener(testListenerAdapter);
testNG.run();
System.out.println("Passed : " + testListenerAdapter.getPassedTests());
System.out.println("Failed : " + testListenerAdapter.getFailedTests());
System.out.println("Skipped : " + testListenerAdapter.getSkippedTests());
}
的方法。如何在同一测试中多次运行@Test
方法。
@Test
答案 0 :(得分:0)
public
,因此您可以从另一个测试类中实例化任何测试类的实例,只需从另一个测试类中调用您想要的方法。Object[][]
或数组迭代器Iterator<Object[]>
,因此您当然可以使用与您一样多(或很少)的参数。喜欢。e.g。
@DataProvider
public Object[][] dp() {
return new Object[][] {
new Object[] { 1, "a", 'x', 3.14, "pi" },
new Object[] { 2, "b", 'y', 6.28, "tau" },
};
}
@Test(dataProvider = "dp")
public void f(Integer n, String s, char c, double d, String s2) {
new OtherTestClass().f(n, s);
}