如何使用[TestClass()]创建Base类,我将在其中执行MyClassInitialize(),之后,我将只创建另一个Test类 - MyNewTest:BaseTest 并且不会初始化?
答案 0 :(得分:3)
(使用MSTest)
ClassInitialize不适用于基类。似乎只在执行的测试类上搜索此属性。但是,您可以显式调用基类。
以下是一个例子:
[TestClass]
public class MyTestClass : TestBase
{
[TestMethod]
public void MyTestMethod()
{
System.Diagnostics.Debug.WriteLine("MyTestMethod");
}
[ClassInitialize]
public new static void MyClassInitialize(TestContext context)
{
TestBase.MyClassInitialize(context);
}
}
[TestClass]
public abstract class TestBase
{
public TestContext TestContext { get; set; }
public static void MyClassInitialize(TestContext context)
{
System.Diagnostics.Debug.WriteLine("MyClassInitialize");
}
[AssemblyInitialize]
public static void AssemblyInit(TestContext context)
{
}
}
答案 1 :(得分:1)
在NUnit / MbUnit中,您只需将Initalize / Cleanup方法与基类中的相应属性放在一起,然后从中继承。
我还没有尝试使用MSTest,但无论如何我都不会推荐这个框架。
托马斯