问题
Quick question, how do I create a method that is run only once before all tests in the solution are run.
回答1:
Create a public static method, decorated with the AssemblyInitialize attribute. The test framework will call this Setup method once per test run:
[AssemblyInitialize()]
public static void MyTestInitialize(TestContext testContext)
{}
For TearDown its:
[AssemblyCleanup]
public static void TearDown()
{}
EDIT:
Another very important detail: the class to which this method belongs must be decorated with [TestClass]. Otherwise, the initialization method will not run.
回答2:
Just to underscore what @driis and @Malice said in the accepted answer, here's what your global test initializer class should look like:
namespace ThanksDriis
{
[TestClass]
class GlobalTestInitializer
{
[AssemblyInitialize()]
public static void MyTestInitialize(TestContext testContext)
{
// The test framework will call this method once -BEFORE- each test run.
}
[AssemblyCleanup]
public static void TearDown()
{
// The test framework will call this method once -AFTER- each test run.
}
}
}
来源:https://stackoverflow.com/questions/1427443/global-test-initialize-method-for-mstest