Hello, Cédric
I'm experimenting with factories and found bug with preserve order:
public class WebTestFactory {
@Factory
public Object[] createInstances() {
Object[] result = new Object[10];
for (int i = 0; i < 10; i++) {
result[i] = new WebTest(i * 10);
}
return result;
}
}
public class WebTest {
private int m_numberOfTimes;
public WebTest(int numberOfTimes) {
m_numberOfTimes = numberOfTimes;
}
@Test
public void testServer() {
for (int i = 0; i < m_numberOfTimes; i++) {
// access the web page
}
}
}
<!DOCTYPE suite SYSTEM "
http://testng.org/testng-1.0.dtd">
<suite name="Factory" verbose="10">
<listeners>
<listener class-name="org.testng.reporters.EmailableReporter" />
</listeners>
<test name="Factory Test" preserve-order="true">
<classes>
<class name="WebTestFactory"/>
</classes>
</test>
</suite>
RemoteTestNG starting
java.lang.NullPointerException
at org.testng.internal.MethodInstance$1.compare(MethodInstance.java:57)
at org.testng.internal.MethodInstance$1.compare(MethodInstance.java:38)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.sort(Arrays.java:1210)
at java.util.Collections.sort(Collections.java:159)
at org.testng.PreserveOrderMethodInterceptor.intercept(PreserveOrderMethodInterceptor.java:28)
at org.testng.TestRunner.createParallelWorkers(TestRunner.java:953)
at org.testng.TestRunner.privateRun(TestRunner.java:734)
at org.testng.TestRunner.run(TestRunner.java:600)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:274)
at org.testng.SuiteRunner.run(SuiteRunner.java:223)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:957)
at org.testng.TestNG.runSuitesLocally(TestNG.java:886)
at org.testng.TestNG.run(TestNG.java:820)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:110)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:174)