對於我的一個項目,我需要在運行測試之前在JVM級別設置兩個屬性(使用testng,正如主題所述)。下面是我用它來執行這兩個屬性的存在的代碼:Test-NG:將@BeforeClass變成別的東西(@BeforeSuite可能?)
import org.testng.annotations.BeforeClass;
public class AbstractPamTest
{
protected String user;
protected String passwd;
protected String badPasswd;
@BeforeClass
public void setUp()
{
user = System.getProperty("test.login");
passwd = System.getProperty("test.passwd");
if (user == null || passwd == null)
throw new IllegalStateException("Please define test.login and"
+ " test.passwd before running tests");
badPasswd = passwd + "x";
}
}
此代碼有我所有的測試必須繼承這一類的問題,因此setUp()
每次運行。我怎樣才能讓這個方法只運行一次?
這些變量都不是靜態的。這會在測試中引起意外的行爲。事實上,如果您的設置非常簡單,那麼您應該使用@Before來防止一個單元測試干擾另一個單元測試的可能性。 – Dunes 2011-12-16 10:15:21