当我使用MSTest Framework,并复制Selenium IDE为我生成的代码时,MSTest无法识别[TearDown]和[SetUp].有什么替代方案?
在下面,您可以在Window Phone Unit Test App中看到一些用Mstest编写的代码。
我有一个称为TestMethod1的普通TestMethod 和一个名为TestMethod2的DataTestMethod ,它具有三个DataRows:
[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");
}
}
Run Code Online (Sandbox Code Playgroud)
如果以调试模式运行测试(在Visual Studio中为Ctrl + R,Ctrl + T),则会在输出面板中看到以下内容:
TestInitialize
TestMethod1
TestCleanup
TestInitialize
TestMethod2 param = c
TestMethod2 param = a
TestMethod2 param = b
TestCleanup
如您所见,TestInitialize仅执行了两次:一次在TestMethod1之前,一次在带有参数c的TestMethod2之前。
对于TestCleanup来说是相同的,它在TestMethod1之后执行一次,并在最后一次执行一次。
我希望无论测试是TestMethod还是DataTestMethod,在每次测试之前和之后都要执行TestInitialize和TestCleanup。否则,一项测试的执行会影响下一项测试。
我希望它是这样的: …
c# unit-testing windows-phone vs-unit-testing-framework windows-phone-8