我们使用 VS 2010 测试运行器 (MSTest) 进行自动化功能测试。当我们从 Visual Studio 运行测试时,VS 创建一个名为 QTAgent32.exe 的进程,并在该进程中运行测试。
我们发现,当我们进行多次测试运行时,MSTest 将重用同一个 QTAgent32 进程——进程 ID 不会改变。这对我们来说是个问题,因为我们正在测试的代码是对非托管 DLL 的 P/Invoking。在进程的生命周期内,DLL 只需要初始化一次。我们有一个 [AssemblyInitialize] 方法,但每次测试运行都会执行一次。如果我们执行多次测试运行,它将在同一个进程中执行多次。
每次我们进行测试运行时,MSTest 都会创建一个新的应用程序域;但是这些应用程序域都在同一个进程中。
所以我想知道:有没有办法告诉 Visual Studio 测试运行器在我们每次运行测试时使用一个新进程?我查看了“.testsettings”配置,但没有看到任何相关内容。
最佳答案
不知道你想用它走多远,但一种解决方案可能是创建你的单元测试主机
http://technet.microsoft.com/fr-fr/query/bb166558
此链接显示了如何创建适配器,然后您还可以为 evertest 启动一个新进程,创建管道通信并在测试后将其拆除。
我知道 MS 本身使用不同的主机在痣下运行测试
http://research.microsoft.com/en-us/projects/pex/molestutorial.pdf
关于.net - 我可以强制 MSTest 为每次测试运行使用新进程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8189657/