我可以强制MSTest为每次测试运行使用新进程吗?

Ric*_*ier 11 .net pinvoke mstest visual-studio

我们正在使用VS 2010测试运行器(MSTest)进行自动功能测试.当我们从Visual Studio运行测试时,VS会创建一个名为QTAgent32.exe的进程,并在该进程中运行测试.

我们发现当我们进行多次测试运行时,MSTest将重用相同的QTAgent32进程 - 进程ID不会改变.这对我们来说是一个问题,因为我们正在测试的代码是P /调用非托管DLL.DLL需要在进程的生命周期内初始化一次.我们有一个[AssemblyInitialize]方法,但每次测试运行一次.如果我们执行多次测试运行,它将在同一进程中执行多次.

每次我们进行测试运行时,MSTest都会创建一个新的appdomain; 但这些appdomains都在同一个过程中.

所以我想知道:有没有办法告诉Visual Studio测试运行器每次运行测试时都使用新进程?我查看了".testsettings"配置,但没有看到任何相关内容.

np-*_*ard 6

不知道你想用多远,但一个解决方案可能是创建你的单元测试主机

http://technet.microsoft.com/fr-fr/query/bb166558

此链接显示了如何创建适配器,然后您可以启动evertest的新进程,创建管道通信并在测试后将其拆除.

我知道MS本身使用不同的主机来运行摩尔测试

http://research.microsoft.com/en-us/projects/pex/molestutorial.pdf