VS 2017 不向 TFS 2010 报告测试结果

Posted

技术标签:

【中文标题】VS 2017 不向 TFS 2010 报告测试结果【英文标题】:VS 2017 Not Reporting Test Results to TFS 2010 【发布时间】:2017-09-28 15:12:53 【问题描述】:

我们有一个 TFS 2010 构建服务器。这在安装和执行构建的 VS 2015 中运行良好,如果任何单元测试失败,我们会获得测试结果的链接。我们刚刚安装了 VS 2017 来代替 2015 使用。现在,我们不再获得测试结果的链接;而是显示消息“无测试结果”。是设置混乱导致我们无法看到这些测试结果,还是与 VS 2017 的集成中断了?另外值得注意的是,如果我登录到构建服务器并在 VS 2017 中运行测试,它们都会通过。只有在 TFS 执行时才会发生测试失败。

VS 2017 年结果

VS 2015 年结果

【问题讨论】:

测试失败的详细错误是什么?根据您的屏幕截图,当您使用 VS2015 运行时,它似乎也失败了。 @Patrick-MSFT,正如您在 VS 2015 中看到的那样,当测试失败时,您会收到一份报告,以便您可以跟进测试失败的原因。对于 VS 2017,它只是说“没有测试结果”,没有机会弄清楚发生了什么。测试失败并不困扰我。问题是当我不知道测试是否失败时。我在日志中发现“无法连接到 Team Foundation Server”,这让我找到了解决方法。我目前正在尝试写一个解释。 【参考方案1】:

在VS端没有任何额外的设置来获取TFS构建摘要中的测试结果。首先请比较两个构建日志,看看是否有任何区别。检查测试结果是否已发布到 TFS。在日志中应该有如下内容:

等待发布...发布测试运行结果 Tfs_Build_User@PROD_AGT4_WCS 2017-09-29 13:59:31_Mixed Platforms_Release 到 http://:8080/tfs/XXX...。发布完成 成功地。

由于它适用于 VS2015 而不适用于 VS2017,因此建议您尝试使用另一个构建服务器/VS2017。如果它在其他构建服务器上运行良好,则此问题可能与您的 VS 安装有关,请尝试重新安装,使用最新的 RTM 版本。

另外,建议您升级到近期内存中发布的 TFS 版本。与 TFS 2017 相比,TFS 2010 的功能极其有限。TFS 2010 很快就不受支持,并且在同样不受支持的软件配置上运行。停留在过时的平台上是在自找麻烦。而且 XAML 构建也被贬值了,对于最新的 TFS2018,我们有removed support for XAML Builds。

【讨论】:

【参考方案2】:

这最终成为两个问题。对于第一个,我在日志中找到了这个:

无法连接到 Team Foundation Server http://... 无法加载文件或程序集“Microsoft.VisualStudio.Threading,Version=15.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

为了解决这个问题,我不得不把它放到 mstest.config 文件中:

<dependentAssembly>
    <assemblyIdentity name="Microsoft.VisualStudio.Threading" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    <bindingRedirect oldVersion="10.0.0.0-15.0.0.0" newVersion="15.3.0.0"/>
  </dependentAssembly>

那时我进入了日志:

无法连接到 Team Foundation Server http://... 提示选项无效,因为该过程不是交互式的。 参数名称:PromptType

通过在构建中将“/noprompt”传递给 mstest 解决了这个问题。

【讨论】:

以上是关于VS 2017 不向 TFS 2010 报告测试结果的主要内容,如果未能解决你的问题,请参考以下文章

VS2012 & TFS2012 单元测试主要问题

VS2012 & TFS2012 单元测试主要问题

给VS2010添加TFS配置连接的窍门

vs2008 安装补丁链接TFS2010

vs2008添加TFS项目时出现以下错误,其中输入的TFS地址的有效的。用VS2010都可以这样添加

如何修改vs2005/vs2010的tfs的登录名和密码 .