2013-08-01 110 views
2

我试图在CI基础上的WPF应用程序上运行UI测试(使用Windows自动化API)。我已将我的解决方案与.testsettings文件关联,并将我的测试.dll链接到构建过程。一切似乎都很好。当通过命令行运行时MSTest执行卡住

当我排队一个新的构建,在TFS的构建日志中,我可以看到命令行参数传递给构建机器上的MSTest(2010) - 看起来,.testsettings文件加载正确,并且正确的测试.dll传递给MSTest.exe。

但是,它似乎在Executing tests消息之后“卡住” - 无论是通过构建运行还是直接通过构建计算机运行。另外,我在.testsettings文件中指定了一个在测试之前运行的启动脚本(它在本地复制应用程序的二进制文件,以便测试可以启动应用程序并运行适用的测试)。这个脚本似乎没有被执行(文件应该复制到的目录是空的)。

有没有人看到类似的问题,并知道如何处理它?

+0

“卡住”是什么意思?我想“执行测试”是我在构建日志中看到的最后一个输出,并且构建没有完成,对吧? 嗯...可能是你的用户界面测试正在等待用户输入(为了访问网络/映射网络驱动器或类似的凭据?如果你需要管理员权限来运行你的启动脚本有关UAC的建立机器? – Elena

+1

这是唯一一组挂起的测试吗?我最近在构建机器上安装VS 2012后遇到了类似的问题。显然,VS 2010需要有更新才能与VS 2012兼容。 [这里](http://stackoverflow.com/questions/16337564/mstest-hangs-for-seemingly-no-reason)。 –

+0

非常感谢你!如果可以的话,我会高兴的。我认为就是这样。我疯了......我尝试了所有的东西,从编译.NET 4和VS 2010中的测试,到手动替换构建机器上的DLL。我还没有设法安装SP1,但我正在努力。 –

回答

4

正如Mike在评论中所说的,这个问题实际上是VS 2010中的一个错误,如果您将VS 2012并排安装,则无法通过2010 IDE运行测试。不幸的是,我无法在构建机器上安装VS 2010 SP1,但也可以通过将/noisolation参数添加到标准命令行语法来解决此问题(这会通过MSTest过程运行测试,从而以某种方式解决问题)。但是,由于您无法通过TFS的集成自动测试功能定义其他参数以传递给MSTest,因此我编写了自己的应用程序,该程序作为计划任务调用,运行测试并发送包含HTML报告的电子邮件(我使用过trx2html - 请注意,如果您使用VS2012,则需要beta 0.7版本,因为自VS 2010以来,.trx格式发生了变化)。