2013-04-03 68 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

試圖實現無繼承一個單獨的類在您的測試項目:

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

應該被調用。

3

我有當我沒有用[TestClass]屬性標記測試基類時,也出現同樣的問題。