同时运行多个[TestClass]
es 时,为什么[ClassCleanup()]
方法只会在最后调用?
文件:UnitTest1.cs
[TestClass]
public class UnitTest1
{
[ClassInitialize()]
public static void ClassInit(TestContext context)
{
}
[ClassCleanup()]
public static void ClassCleanup()
{
}
[TestMethod]
public void TestMethod1()
{
}
}
文件:UnitTest2.cs
[TestClass]
public class UnitTest2
{
[ClassInitialize()]
public static void ClassInit(TestContext context)
{
}
[ClassCleanup()]
public static void ClassCleanup()
{
}
[TestMethod]
public void TestMethod1()
{
}
}
执行顺序如下:
请注意,两个[ClassCleanup]方法都在集合的末尾执行;并不是在每个TestClass都“完成”之后。
但我期望一种不同的行为:
Microsoft的文档 - ClassCleanupAttribute Class说,“标识一种方法,该方法包含在测试类中的所有测试运行后要使用的代码,并释放测试类获得的资源。”
但它似乎是迟到了!
我该如何解决这个问题?或者找到一种在下一个ClassInitialize方法之前从同一个TestClass执行方法的方法。