package test.factory; import static org.testng.Assert.assertFalse; import org.testng.IInstanceInfo; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Factory; import org.testng.annotations.Parameters; import org.testng.internal.InstanceInfo; public class FactoryWithInstanceInfoTest { static boolean m_invoked = false; @Parameters({ "factory-param" }) @Factory public IInstanceInfo[] createObjectsWithInstanceInfo(String param) { assert "FactoryParam".equals(param) : "Incorrect param: " + param; assertFalse(m_invoked, "Should only be invoked once"); m_invoked = true; return new IInstanceInfo[] { new InstanceInfo(FactoryWithInstanceInfoTest2.class, new FactoryWithInstanceInfoTest2(42)), new InstanceInfo(FactoryWithInstanceInfoTest2.class, new FactoryWithInstanceInfoTest2(43)), }; } @BeforeSuite public void beforeSuite() { m_invoked = false; } private static void ppp(String s) { System.out.println("[FactoryWithInstanceInfoTest] " + s); } }