package test.thread; import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.testng.collections.Lists; import java.util.List; import java.util.Random; public class MultiThreadedDependentSampleTest { public static List<String> m_methods = Lists.newArrayList(); @BeforeClass public void bc() { // log("beforeClass"); } @AfterClass public void ac() { // log("afterClass"); } @BeforeMethod public void bm() { // log("beforeMethod"); } @AfterMethod public void am() { // log("afterMethod"); } @Test(groups = "1") public void a1() { logThread(); log("a1"); } @Test(groups = "1") public void a2() { logThread(); log("a2"); } @Test(groups = "1") public void a3() { logThread(); log("a3"); } @Test(groups = "2", dependsOnGroups = "1") public void b1() { logThread(); log("b1"); } @Test(groups = "2", dependsOnGroups = "1") public void b2() { logThread(); log("b2"); } @Test(groups = "2", dependsOnGroups = "1") public void b3() { logThread(); log("b3"); } @Test(groups = "2", dependsOnGroups = "1") public void b4() { logThread(); log("b4"); } @Test(groups = "2", dependsOnGroups = "1") public void b5() { logThread(); log("b5"); } @Test(dependsOnGroups = "2") public void c1() { logThread(); log("c1"); } @Test(dependsOnGroups = { "1" }) public void d() { logThread(); log("d"); } @Test public void x() { log("x"); } @Test public void y() { log("y"); } @Test public void z() { log("z"); } @Test public void t() { log("t"); } // @Test(groups = "mytest", dependsOnMethods = "g") // public void f() { // } // // // @AfterMethod // public void after() { // } private void logThread() { long id = Thread.currentThread().getId(); // Thread.yield(); // try { // Thread.sleep(new Random().nextInt() % 1000); // } catch (InterruptedException e) { // } Helper.getMap(getClass().getName()).put(id, id); } private void log(String string) { synchronized(m_methods) { m_methods.add(string); } // System.out.println(string + "() thread:" + Thread.currentThread().getId()); // int sleep = Math.abs(new Random().nextInt() % 500); // System.out.println(" sleeping " + sleep); // try { // Thread.sleep(sleep); // } catch (InterruptedException e) { // e.printStackTrace(); // } } }