C# 使用线程主体集全局运行NUnit测试

C# 使用线程主体集全局运行NUnit测试,c#,.net,wpf,nunit,integration-testing,C#,.net,Wpf,Nunit,Integration Testing,我想在我的WPF解决方案中为视图模型编写一些集成测试,其中线程的主体是用 AppDomain.CurrentDomain.SetThreadPrincipal(主体) NUnit不提供从测试代码执行相同操作的机制,例如: AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.NoPrincipal); AppDomain.CurrentDomain.SetThreadPrincipal(myCustomPrincipalInstan

我想在我的WPF解决方案中为视图模型编写一些集成测试,其中线程的主体是用
AppDomain.CurrentDomain.SetThreadPrincipal(主体)

NUnit不提供从测试代码执行相同操作的机制,例如:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.NoPrincipal);
AppDomain.CurrentDomain.SetThreadPrincipal(myCustomPrincipalInstance);
可以通过NUnit的“设置对话框”进行设置,但这不是我所需要的(有关此解决方案的更多信息,请参见

是否有一种方法可以使用全局设置主体运行测试,以便测试代码堆栈中的所有线程都可以使用它?是否有一个NUnit插件可以提供这样的功能,或者是否有一种方法可以使用新的AppDomain运行测试,我可以为其设置自定义主体(我将如何做到)


我尝试在MsTest中执行类似的操作,其中
PrincipalPolicy.WindowsPrincipal
是默认设置,但我无法将线程主体也设置为AppDomain。

NUnit called中有一个东西。您应该能够通过调用以下命令来实现所需的结果:

TestExecutionContext.CurrentContext.CurrentPrincipal = customPrincipal;
为什么在网上很难找到它,我不知道,但是除非你知道它在那里,否则需要一段时间才能找到它:-)


希望能有帮助

多谢各位。对于其他人:我必须添加对NUnit.Core的引用,以获取TestExecutionContext