我们正在使用VS 2008 Team System和自动化测试套件,并且在运行测试时,测试主机“随机”锁定。我实际上必须杀死VSTestHost进程并重新运行测试以使某些事情发生,否则所有测试都处于“挂起”状态。
有没有人遇到类似的行为并知道修复?我们这里有3位开发人员遇到了同样的行为。
答案 0 :(得分:4)
这可能与导致单元测试挂起的模糊错误有关,除非计算机名称是大写的。疯了,我知道 - 但我遇到了这个问题并且解决方案对我有用。
MS Connect上的 Bug report
MS Connect上的Workaround
TFS Blog Article关于这个问题
HowTo编辑注册表以更改您的计算机名称
最简单的方法是调整注册表。您需要编辑两个键:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName
将两个键中的值ComputerName更改为大写,然后重新启动。然后测试神奇地工作。
答案 1 :(得分:2)
当你说锁定时,你的意思是VS实际上是挂起的,还是测试没有运行?
追踪正在发生的事情的最简单方法是查看挂起进程的转储。如果您使用的是Vista,只需右键单击该过程并选择创建内存转储。如果您使用的是Windows XP,并且未安装Debugging Tools for Windows,则可以使用ntsd.exe获取内存转储。您将需要进程ID,您可以通过将PID列添加到“进程”选项卡显示来从任务管理器获取进程ID。
完成后,运行以下命令:
ntsd -p <PID>
.dump C:\mydump.dmp
然后您可以使用WinDBG and SOS检查转储,或者如果您可以将转储发布到某个地方我很乐意看一下。
无论如何,你可能希望在一分钟左右的时候进行两次转储。这样,如果您执行类似!失控的操作,您可以看到哪些线程正在工作,这将有助于您找出它挂起的原因。
另一个问题 - 你是VS2008 SP1吗?
答案 2 :(得分:2)
我会尝试使用MSTest.exe从命令行运行测试。这可能有助于将问题隔离到Visual Studio,并至少为您提供一些成功运行测试的方法。