下面您可以看到一些在Windows Phone單元測試應用程序中使用Mstest編寫的代碼。
我有一個正常的TestMethod的稱爲TestMethod1和DataTestMethod稱爲TestMethod2其中有三個數據行:TestInitialize和TestCleanup不會在DataTestMethod的每個DataRow之前和之後運行
[TestClass]
public class UnitTest1
{
[TestInitialize]
public void Setup()
{
Debug.WriteLine("TestInitialize");
}
[TestMethod]
public void TestMethod1()
{
Debug.WriteLine("TestMethod1");
}
[DataTestMethod]
[DataRow("a")]
[DataRow("b")]
[DataRow("c")]
public void TestMethod2(string param)
{
Debug.WriteLine("TestMethod2 param=" + param);
}
[TestCleanup]
public void TearDown()
{
Debug.WriteLine("TestCleanup");
}
}
如果我運行在調試模式下(Ctrl + R鍵,Ctrl + T鍵在Visual Studio中測試)我看到這在輸出面板:
TestInitialize
TestMethod1
TestCleanup
TestInitialize
TestMethod2 PARAM = C
TestMethod2 PARAM =一個
TestMethod2 PARAM = B
TestCleanup
正如你所看到的,TestInitialize被執行只有兩次:一次是前TestMethod1和一次在TestMethod2之前用參數c。
對於TestCleanup來說,它在TestMethod1之後執行一次,最後一次執行。
我希望TestInitialize和TestCleanup可以在每次測試之前和之後執行,無論它是TestMethod還是DataTestMethod。否則,一次測試的執行會影響下一次測試。
我希望它是這樣的:
TestInitialize
TestMethod1
TestCleanup
TestInitialize
TestMethod2 PARAM = C
TestCleanup
TestInitialize
TestMethod2 PARAM =一個
TestCleanup
TestInitialize
TestMethod2 PARAM = B
TestCleanup
我沒有發現任何人有同樣的問題,我是什麼我做錯了?
這是行不通的。 – dcastro 2015-04-20 21:25:07