我有一個我正在使用的日誌解析器,而這個日誌解析器有一個定義任何日誌記錄存儲引擎(內存,數據庫等)的基本方法的接口ILogStore
。這個想法是,開發人員和用戶可以通過MEF插件界面添加或刪除日誌存儲引擎。我該如何告訴mstest忽略基類中的測試而不是子類中的測試?
然而,爲了確認一個ILogStore
實現可以正確地存儲,過濾和檢索日誌條目我創建了一個基類單元/集成/ API測試:
public class LogStoreBaseTests
{
protected ILogStore _store;
[TestMethod]
public void Can_Store_And_Retrieve_Records() { }
[TestMethod]
public void Can_Filter_Records_By_Inclusive_Text() { }
[TestMethod]
public void Can_Filter_Records_By_Exclusive_Text() { }
// etc...
}
我測試實施任務由做這樣的事情:
[TestClass]
public class InMemoryLogStoreTests : LogStoreBaseTests
{
[TestInitialize]
public void Setup()
{
_store = new InMemoryLogStore();
}
}
這個工程除了MSTest的通知,在基類中的方法有[TestMethod]
但錯誤好,因爲該類沒有[TestClass]
,它不因爲它本身並不是有效的測試。
如何讓MsTest在不從子類運行時忽略這些方法?
我*希望*它們互相影響,以確保所有ILogStore實現的核心功能在它們的行爲中是一致的,並且當需求改變了ILogStore檢索方法的意圖返回時,它被確認爲適用於所有實現的新需求。 – KallDrexx