我正在使用NUnit 2爲C#編寫一些單元測試。我的環境是安裝了Resharper的Visual Studio 2015 Professional。如何使用依賴TestSetup方法運行的NUnit測試用例?
我遇到的問題是我嘗試使用TestCaseSourceAttribute
創建的一些參數化測試。在簡單的情況下,我可以創建這樣的測試,將很好地工作:
[Test, TestCaseSource(nameof(MyTestCases))]
public void MyTest(string name) {
Assert.IsFalse(String.IsNullOrEmpty(name));
}
private static IEnumerable<TestCaseData> MyTestCases {
get {
yield return new TestCaseData("test");
yield return new TestCaseData("123");
}
}
然而,當我嘗試實例化,必須從數據庫實體映射或檢查自己的初始化過程的數據庫類型,測試被忽略由測試運動員。例如:
[Test, TestCaseSource(nameof(MyTestCases))]
public void MyTest(MyMappedType instance) {
Assert.IsTrue(instance.SomeProperty);
}
private static IEnumerable<TestCaseData> MyTestCases {
get {
yield return new TestCaseData(GetAnInstanceOfMyMappedType());
yield return new TestCaseData(GetADifferentInstanceOfMyMappedType());
}
}
的MyMappedType
實例化將正常工作,如果它是在測試體本身,但如果任何測試用例初始化它測試被忽略。
我可以讓這些測試以參數化的方式工作嗎?有關此的任何文檔參考?
更新:
這個問題似乎是由於測試用例屬性依賴類的TestSetup
方法已經有運行在一些代碼。在初始化每個測試用例之前而不是之後有沒有辦法讓安裝程序運行?