当我在 TFS 服务器上运行测试时,出现以下错误:
The active Test Run was aborted because the execution process exited unexpectedly. To investigate further, enable local crash dumps either at the machine level or for process vstest.executionengine.exe. Go to more details: [http://go.microsoft.com/fwlink/?linkid=232477]
当我在本地机器上运行这个测试时,我得到了“全部通过”的结果。我不知道可能是什么原因,在 TFS 服务器和本地运行的测试有什么区别?
最佳答案
我们在其中一个 CI 构建中遇到了同样的问题。原因是一个(或多个)测试正在启动单独的线程,当在这样的线程中发生崩溃而不是在 vstest.executionengine 的主线程中发生崩溃时,进程只会在没有额外信息的情况下崩溃。按照错误消息中的建议启用故障转储有助于我们本地化有问题的模块。另一种方法是开始从构建定义中删除测试程序集,以便我们只运行部分单元测试,直到我们本地化有问题的测试。
本地环境和 TFS 的区别在于构建服务器创建的文件夹结构与本地相比不同,因此一些相对路径会出错。正是在我们的情况下,我们丢失了一些数据文件。我们都忘记将它们映射到构建定义的“源设置”路径中,也忘记正确部署它们。
关于unit-testing - vstest.executionengine.exe 在 TFS 上崩溃,但在我的本地 VS2012 上一切正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21571156/