在Microsoft的UnitTesting命名空间(Microsoft.VisualStudio.TestTools.UnitTesting
)中,可以应用于静态方法的AssemblyInitialize
和AssemblyCleanup
属性,它们将分别在所有测试之前和之后调用。
[AssemblyInitialize]
static public void AssemblyInitialize(TestContext testCtx)
{
// allocate resources
}
[AssemblyCleanup]
static public void AssemblyCleanup()
{
// free resources
}
我的问题:是否可以安全访问TestContext
中的AssemblyCleanup()
?如果没有,将资源引用存储为静态成员是一个合理的替代方案,还是会导致问题?
另外/可选:不将TestContext
的引用传递给清理方法背后的原因是什么?
答案 0 :(得分:1)
我正在访问同一个类的静态属性,它似乎工作正常。如果我遇到任何问题,我会更新这个答案。我是而不是,但访问TestContext
所以我很好奇是否也会这样做。
答案 1 :(得分:0)
您无法将任何参数传递给AssemblyCleanup方法。如果您尝试这样做,则会出现错误:
结果消息:方法 SomeNamespace.TestDatabaseInitializer.AssemblyCleanup有错误 签名。该方法必须是静态的,公共的,不返回值 并且不应该采取任何参数。