我想知道@BeforeMethod
的使用情況。在http://testng.org/javadoc/org/testng/annotations/BeforeMethod.html它說:TestNG BeforeMethod with groups
alwaysRun:如果設置爲true,這個配置方法將運行,不管它屬於哪個組。
所以我有以下類:
public class BeforeTest {
private static final Logger LOG = Logger.getLogger(BeforeTest.class);
@BeforeMethod(groups = {"g1"}, alwaysRun = false)
public void setUpG1(){
sleep();
LOG.info("BeforeMethod G1");
}
@Test(groups = {"g1"})
public void g1Test(){
sleep();
LOG.info("g1Test()");
}
@BeforeMethod(groups = {"g2"}, alwaysRun = false)
public void setUpG2(){
sleep();
LOG.info("BeforeMethod G2");
}
@Test(groups = {"g2"})
public void g2Test(){
sleep();
LOG.info("g2Test()");
}
private void sleep(){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
,輸出:
BeforeMethod G1
BeforeMethod G2
g1Test()
BeforeMethod G1
BeforeMethod G2
g2Test()
除了事實上,我認爲awaysRun默認爲false,任何人都可以,爲什麼這兩個之前給我解釋一下方法在每次測試之前被調用,忽略組?類似@Test(skipBeforeMethod =「setUpG1」)也可以。
我正在使用IntelliJ IDEA CE 10.5.2。我也用gradle 1.0-milestone-3來運行它。
我沒有運行,思想分組是一種過濾,因此具有某個組的beforeMethod只適用於具有相同組的測試。猜猜我錯了。我需要做的是類似於你的解決方案在這裏(http://stackoverflow.com/questions/3115822/passing-output-of-one-test-method-to-another-method-testng),但與此問題解決方法是,如果有許多測試取決於f1,則mResult不會被重置。 – rweng