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