2012-02-29 30 views
0

我正在開發一個框架供幾個項目使用。該框架將實現類似於MSTest基礎上的單元測試的集成方法。集成測試的核心部分將作爲獨立程序集的框架的一部分,我們稱之爲Fr.IntegrationTests.dll。運行幾個用AssemblyInitialize裝飾的方法可能嗎?

所有使用框架的項目都必須在新程序集中實現自己的集成測試,我們稱之爲Project.IntegrationTests.dll。此程序集僅通過一些特定的測試擴展了Fr.IntegrationTests.dll中的測試。

我遇到的問題是我必須對Fr.IntegrationTests.dll和Project.IntegrationTests.dll執行兩個單獨的初始化。我通過兩個程序集中的AssemblyInitialize來做到這一點。但它接近我,只有項目的初始化完成。

你能告訴我,如果多個初始化方法可能使用AssemblyInitialize?對於我來說,瞭解用AssemblyInitialize裝飾的引用程序集(Fr.IntegrationTests.dll)中的方法是否也會被調用很重要。

預先感謝您!

+0

這不能很好地工作,初始化方法被調用的順序是不明確的。實際的原因可能是因爲單元測試運行者不知道第二個程序集甚至在後面被加載。 – 2012-02-29 13:54:23

回答

0

您可能會更好地使用ClassInitialize並按類組織您的測試。此外,我相當確定MSTest不尊重引用程序集中的任何典型屬性,您可能希望直接對該程序集執行MSTest。

+0

MSTest實際上並不尊重引用程序集中的屬性,所以我不得不在我的項目初​​始化中調用該初始化。 – llasarov 2012-03-02 10:03:05