我正在从 2010 年到 2012 年进行 TFS 服务器的测试迁移。我们采用了概念验证服务器并成功将其升级到 TFS2012。现在我们正在尝试重新利用旧的构建控制器,在 Windows 2003 上运行 TFS2010 来运行构建。建筑有点古老。它们最初是为 TFS2005 创建的,并且在过去的某个时候直接升级到 TFS2010,但仍然使用 MSBuild 脚本和升级模板。绝大多数代码库仍以 .NET 2.0 和 VS2005 为目标,尽管这将很快发生变化。
所以,这就是背景。在 TFS2012 构建控制器上,一切都成功构建并且测试运行。万岁!现在进入问题。
在 TFS1010 构建控制器上,一切构建成功,但 Web 测试“挂起”。当从命令行手动执行时,它只是说“开始执行”,然后在那里坐了几个小时,最终超时。有单元测试,它们确实会运行,所以这是 web 测试特别发生的事情。
有趣的是,TFS2012 构建控制器显然使用的是 2012 版本的 MSTest,在 \Microsoft Visual Studio 11.0\ 文件夹中,而 TFS2010 构建控制器使用的是 VS2010 版本。当我使用 VS2010 版本的 MSTest 在 2012 构建控制器上通过命令行运行相同的测试时,会出现同样的问题。
我已经确认 TFS2010 构建服务器正在运行 VS2010 Ultimate SP1,并通过 Windows 更新安装了所有适当的更新。它最初运行的是高级版,当时无法运行的网络测试实际上是有意义的。我完全卸载了 Premium,然后安装了 Ultimate。TFS2010 已修补到 SP1 并安装了 CU 2。
TFS2012 服务器正在运行更新 2。
以下是来自构建服务器的发生问题的日志:
TeamFoundationServerUrl="http://[redacted]:8080/tfs/eCommerce" BuildUri="vstfs:///Build/Build/46594" (TaskId:4359)
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe /nologo /usestderr /testSettings:"G:\Builds\19\124\Sources\Main\Source\ES_[redacted].testrunconfig" /searchpathroot:"G:\Builds\19\124\Binaries\ESIntegration" /resultsfileroot:"G:\Builds\19\124\TestResults" /testmetadata:"G:\Builds\19\124\Sources\Main\Tests\WebTests\Common\SmokeTests\SmokeTests.vsmdi" /testlist:"Division1" /testlist:"Division2" /publish:"http://[redacted]:8080/tfs/ecommerce" /publishbuild:"vstfs:///Build/Build/46594" /teamproject:"Web" /platform:"Any CPU" /flavor:"ESIntegration" (TaskId:4359)
Loading G:\Builds\19\124\Sources\Main\Source\ES_[redacted].testrunconfig... (TaskId:4359)
The file 'G:\Builds\19\124\Sources\Main\Source\ES_[redacted].testrunconfig' was created in an earlier version of Visual Studio. This file will be converted, in memory only, to the current format. (TaskId:4359)
Loading G:\Builds\19\124\Sources\Main\Tests\WebTests\Common\SmokeTests\SmokeTests.vsmdi... (TaskId:4359)
(TaskId:4359)
Search path(s) for tests: (TaskId:4359)
G:\Builds\19\124\Binaries\ESIntegration (TaskId:4359)
G:\Builds\19\124\Sources\Main\Tests\WebTests\Common\SmokeTests (TaskId:4359)
Search path(s) for default test settings: (TaskId:4359)
G:\Builds\19\124\Sources\Main\Tests\WebTests\Common\SmokeTests (TaskId:4359)
(TaskId:4359)
Starting execution... (TaskId:4359)
(TaskId:4359)
Results Top Level Tests (TaskId:4359)
------- --------------- (TaskId:4359)
Timeout (Division1/)SmokeTests.Division1 (TaskId:4359)
Timeout (Division2/)SmokeTests.Division2 (TaskId:4359)
0/2 test(s) Passed, 2 Timeout (TaskId:4359)
请注意,从构建控制器上的 IDE 运行时,测试存在相同的问题。