C# MSTest的全局测试初始化方法
快速提问,如何创建一个在解决方案中的所有测试运行之前只运行一次的方法。创建一个公共静态方法,并用属性修饰。测试框架将在每次测试运行时调用此设置方法一次:C# MSTest的全局测试初始化方法,c#,mstest,C#,Mstest,快速提问,如何创建一个在解决方案中的所有测试运行之前只运行一次的方法。创建一个公共静态方法,并用属性修饰。测试框架将在每次测试运行时调用此设置方法一次: [AssemblyInitialize()] public static void MyTestInitialize(TestContext testContext) {} 对于拆卸its: [AssemblyCleanup] public static void TearDown() {} 编辑: 另一个非常重要的细节:此方法所属的类必
[AssemblyInitialize()]
public static void MyTestInitialize(TestContext testContext)
{}
对于拆卸its:
[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.
}
}
}
抱歉,格式太糟糕了
/// <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()
{
...
...
}
//
///在运行每个测试之前,使用TestInitialize运行代码
///在每个测试执行之前运行
///
[测试初始化()]
public void TestInitialize()
{
...
...
}
///
///使用TestCleanup在每个测试运行后运行代码
///在每个测试执行后运行
///
[TestCleanup()]
公共void TestCleanup()
{
...
...
}
我希望我知道,还有:(目前,我有一个抽象基类,每个TestClass都从中继承。在该类中,我有一个TestInitialize方法。问题是,每次运行新测试时都会触发该方法!让该抽象基类实现一个静态构造函数。在运行任何测试之前,只会触发一次。如果您在超过一个程序集MyTestInitialize将为您的测试运行多次调用。这可能不清楚-它不是为每个测试运行,而是为每个测试运行。这意味着如果您运行一组测试,例如在一个测试运行中运行一个类中的所有测试,或者在一个测试运行中运行该程序集中的所有测试,则会为该ru中的所有这些测试运行一次n、 因此,如果一次只运行一个测试,他们可以共享此方法的结果/副作用,也可以不共享。标记为[TestInitialize]的类是否也会在每次测试运行之前执行?AssemblyInitialize是否也会在每次测试运行之前运行,还是每个测试会话仅运行一次?[TestInitialize()]public void TestInitialize(){…}[TestCleanup()]public void TestCleanup(){…}请查看此StackOverflow链接,获取有关使用[TestInitialize]
修饰的代码何时运行的简明答案: