4

我对汇编中的方法进行了集成测试A。程序AB通过项目引用引用程序集。我在 Resharper 6.1 单元测试场景中的 Visual Studio 2010 调试器下运行它们。测试引擎是微软的原生 MSTest。

我知道臭名昭著

该进程无法访问该文件...\B.dll,因为它正被另一个进程使用。

信息。我已经验证没有其他进程对该文件有句柄(例如,通过 Sysinternal 的 Process Explorer)。

从调试器中运行测试工作正常。任何想法为什么它会在调试器下发生以及我可以做些什么来修复它?

4

3 回答 3

7

我见过类似的情况,在任务管理器中发现vtest.discoveryengine.exe和vtest.executionengine.exe还活着。我杀了两个,这解决了问题。

于 2013-04-22T14:25:33.570 回答
7

基于 Sébastien 的回答,我在我的测试项目中添加了一个预构建步骤,以自动终止任何vstest.*仍在运行的可执行文件。以下预构建命令对我有用:

taskkill /f /im vstest.*
exit 0

exit 0命令位于末尾,以防止在没有vstest.*可执行文件运行时构建失败。

于 2015-05-01T13:29:33.027 回答
0

在@mrtumnus 的答案和此处的答案的基础上,我在我的测试项目中添加了一个预构建步骤以自动终止任何vstest.*可执行文件:

START taskkill /f /im vstest.*

如果任务没有运行,使用START而不是exit 0所以它不会给出错误。(不过,它确实打开了一个命令窗口,这有点烦人)。

于 2016-10-22T06:19:29.883 回答