2013-04-03 2 views
8

У меня есть абстрактный базовый тестовый класс, который имеет атрибут AssemblyInitialize, применяемый к методу. Но он никогда не будет выполнен ... Абстрактный базовый тестовый класс находится в другой сборке, потому что он предназначен для общего расширения. Есть идеи, как это решить?AssemblyInitialize в производном классе

Код

[TestClass] 
public abstract BaseTestClass 
{  
    [AssemblyInitialize] 
    public static void AssemblyInit(TestContext context) 
    { 
     //DoDomething 
    } 
} 

Заранее спасибо

ответ

5

Это происходит потому, что сборка никогда не инициализируется, если вы не запускаете ее тесты. Решение я могу дать (возможно, дурак, один), чтобы использовать 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; } 
} 
+0

То же решение, которое я реализовал как обходной путь. Благодаря! – mrtentje

5

Try реализовать отдельный класс без наследования в вашем проекте Test:

[TestClass] 
public static class YourClass 
{ 
    [AssemblyInitialize] 
    public static void AssemblyInit(TestContext context) 
    { 
     //DoSomething 
    } 
} 

Следует назвать.

3

Я имел та же проблема, когда я не маркировал тестовый базовый класс атрибутом [TestClass].

Смежные вопросы