TFS Visual Studio测试任务未填充TRX文件

时间:2018-07-03 15:11:42

标签: tfs automated-tests azure-devops

我们一直在使用TFS来运行自动化测试。测试可以作为构建的一部分运行,也可以根据测试计划的要求运行。我们正在使用Specflow生成测试方案。

对于我执行这些测试的第一个月,将生成一个.TRX文件,其中包含来自specflow的一些日志。我还可以使用System.Diagnostics.Trace.WriteLine记录自己的跟踪日志。所有这些都将显示在.Trx文件中。

.TRX文件还将显示通过,失败或不确定的测试数量。如果我在Visual Studio中打开该文件,它将显示一个“测试运行”面板,其中包含每个测试及其结果的详细信息。

但是,最近这种情况停止了。 .TRX文件仍被创建,但是基本上是空的。它说没有运行测试,并且我的所有跟踪日志都不显示。当我登录到控制台时,TFS仍会向我显示正确的信息,但是附加的.TRX文件始终为2k,这意味着它只是xml文件的框架。

以下是我们如何运行测试的一些细节:

  • 我们有一个测试计划,因此测试作为发行版的一部分运行。该版本包含一个“运行Visual Studio测试任务” Test task configuration
  • .runSettings文件仅包含 TestRunParameters 部分。没有配置其他设置。
  • 我们正在使用TFS 2017版本2。

我以为Specflow可能与此有关,但是即使没有Specflow的简单MSTest也无法正确记录。

一些答案​​建议将 / Logger:trx 添加到“其他控制台选项”,但这总是给我一个警告,指出该版本正在多个代理上运行,因此设置将被忽略。我们的发行版不会在多个代理上运行,所以我不知道为什么会看到该警告。

这项工作一直持续到最近,我试图找出发生了什么变化。我尝试创建一个全新的版本,新的代码库和新的测试来运行,但这似乎并不重要。

让我知道您需要什么其他信息。谢谢

1 个答案:

答案 0 :(得分:0)

我已经找到了解决问题的方法,但是我不明白到底发生了什么,所以我希望有人能够填补空白。

TFS服务器上有多个VSTest.Console.Exe版本。当我选择 Visual Studio 2017 作为版本时使用的版本是

  

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe

我不知道这是否正确,但这就是所使用的。我发现在本地我使用了不同的路径。

  

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe

我能够执行该版本的vstest并在本地生成TRX文件。位于

的还有另一个vstest.console.exe。
  

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ Extensions \ TestPlatform \ vstest.console.exe

我相信最后一个是用于VSTest V2的吗?我不太确定,希望有人澄清一下。

我相信您运行的可执行文件取决于测试平台版本设置。我通常将其设置为“最新”,但是在尝试弄清为什么它不再记录日志时,我将其更改为Visual Studio 2017。

TLDR-解决方案

您也可以选择特定位置,它可以为您提供可执行文件的路径。我将 vstest.console.exe的路径值设置为C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console。 exe,一切正常。

我唯一能想到的是,Professional下的Vstest版本(我们正在使用的Visual Studio版本)与BuildTools下的版本不同吗?该测试将以任何一种方式成功运行,但是Professional下的可执行文件还会生成Trx文件。由于未记录任何详细信息,因此很难判断发生了什么。

希望有人可以解释这里发生的事情,但至少有同样问题的任何人都可以尝试一下。