快速提问,我该如何创建一个仅在运行整个解决方案中的所有测试之前仅运行一次的方法。
创建一个公共的静态方法,并使用AssemblyInitialize属性进行修饰。测试框架会在每次测试运行时调用该Setup方法:
[AssemblyInitialize]
public static void MyTestInitialize(TestContext testContext)
{}
对于TearDown,它的:
[AssemblyCleanup]
public static void TearDown()
{}
编辑:
另一个非常重要的细节:这个方法所属的类必须用[TestClass]
进行装饰。否则,初始化方法将不会运行。
强调一下已被接受答案中@driis和@Malice所说的,你的全局测试初始化类应该长这样:
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.
}
}
}
[TestInitialize()]
public void TestInitialize()
{
...
}
[TestCleanup()]
public void TestCleanup()
{
...
}
- Allen[TestInitialize]
修饰的代码何时运行的简明答案:https://dev59.com/EWAg5IYBdhLWcg3w7uyk#23012750 - Mass Dot Net对于糟糕的格式化我表示抱歉...
/// <summary>
/// Use TestInitialize to run code before running each test
/// Runs before every test executes
/// </summary>
[TestInitialize()]
public void TestInitialize()
{
...
...
}
/// <summary>
/// Use TestCleanup to run code after each test has run
/// Runs after every test executes
/// </summary>
[TestCleanup()]
public void TestCleanup()
{
...
...
}
public static void TestInitialize(TestContext testContext)
- Milan