Jam*_*mez 48 testing unit-testing visual-studio-2012
我在运行单元测试时遇到错误.如果我调试单元测试vstest.executionengine.x86.exe运行,则在测试通过时关闭.
如果我只是运行测试(即使测试就像创建一个新列表一样简单,没有断言)vstest.executionengine.x86.exe不会关闭并保持在任务管理器中运行.
在编写更复杂的测试(包括删除文件/清理sqllite数据库)时,这对我来说是一个问题.
任何帮助,将不胜感激.
编辑:
重现步骤 :
all*_*len 56
这是设计的.
仅当我们检测到两次连续测试运行之间的配置更改时,才会重新启动vstest.executionengine.exe.这有助于确保我们不会不必要地重新启动流程重启.
产品更新 使用VS2013,我们在Test - > Test Settings下有一个名为"Keep Test Execution Engine Running"的新菜单项.您可以取消选中此选项以退出默认行为.
Hap*_*Cat 41
我通过使用以下作为受影响的测试项目的预构建事件来解决这个问题:
对于64位:
taskkill /F /IM vstest.executionengine.exe /FI "MEMUSAGE gt 1"
Run Code Online (Sandbox Code Playgroud)
或32位:
taskkill /F /IM vstest.executionengine.x86.exe /FI "MEMUSAGE gt 1"
Run Code Online (Sandbox Code Playgroud)
在构建测试项目之前,这会默默地杀死执行引擎.在/FI "MEMUSAGE gt 1"
停止从如果执行发动机不运行失败的命令(以及因此生成).
为了它的价值,我遇到了同样的情况,结果发现我有一个没有正确清理所有资源的测试.在我的特定情况下,有一个打开网络连接的后台线程在测试退出之前没有关闭.不知道为什么退出测试没有为我关闭这个,但是当我修复我的代码以正确处理我打开的所有资源时,一切都按预期工作.我没有添加任何黑客来杀死vstest.executionengine.exe
,我也没有选择退出Test -> Test Settings -> Keep Test Execution Engine Running