派生类中的AssemblyInitialize

mrt*_*tje 9 c# mstest

我有一个抽象的基础测试类,它有一个AssemblyInitialize应用于方法的属性.但它永远不会被执行...抽象基础测试类在另一个程序集中,因为它是用于通用扩展.任何想法如何解决这个问题?

代码

[TestClass]
public abstract BaseTestClass
{    
   [AssemblyInitialize]
   public static void AssemblyInit(TestContext context)
   {
      //DoDomething
   }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

cha*_*sos 8

发生这种情况是因为如果不从中运行测试,则永远不会初始化程序集.我可以给出的解决方案(可能是一个傻瓜)是使用AssemblyInitialize其他组件并调用基础AssemblyInitialize

TestProject包含测试的内容中添加以下代码:

[TestClass]
public class UnitTest1
{
    [AssemblyInitialize]
    public static void AssemblyInitialize(TestContext testContext)
    {
        // call the base AssemblyInitialize
        BaseTestProject.BaseTest.AssemblyInitialize(testContext);
    }

    public TestContext TestContext { get; set; }
}
Run Code Online (Sandbox Code Playgroud)


Mik*_*Del 5

尝试在Test Project中实现一个没有继承的单独类:

[TestClass]
public static class YourClass
{
    [AssemblyInitialize]
    public static void AssemblyInit(TestContext context)
    {
       //DoSomething
    }
}
Run Code Online (Sandbox Code Playgroud)

它应该被称为.


ast*_*tef 5

当我没有用[TestClass]属性标记测试基类时,我遇到了同样的问题。