代码之家  ›  专栏  ›  技术社区  ›  bsayegh

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

  •  0
  • bsayegh  · 技术社区  · 6 年前

    我们一直在使用TFS来运行自动测试。测试要么作为构建的一部分运行,要么根据测试计划的需要运行。我们正在使用specFlow生成测试方案。

    在我执行这些测试的第一个月,将生成一个.trx文件,其中包含来自specFlow的一些日志。我还可以使用system.diagnostics.trace.writeline记录自己的跟踪日志。所有这些都将显示在.trx文件中。

    .trx文件还将显示通过、失败或没有结论的测试的数量。如果我在Visual Studio中打开该文件,它将向我显示一个测试运行面板,其中包含每个测试及其结果的详细信息。

    然而,最近这种情况停止了。.trx文件仍然被创建,但基本上是空的。它说没有运行任何测试,所有跟踪日志都不显示。当我登录到控制台时,tfs仍然向我显示正确的信息,但是附加的.trx文件始终是2K,这意味着它只是XML文件的骨架。

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

    • 我们有一个测试计划,所以测试作为发布的一部分运行。该版本包含一个单独运行的Visual Studio测试任务
    • .runsettings文件只包含 testrunparameters 部分。未配置任何其他设置。
    • 我们正在使用TFS 2017版本2。

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

    有些答案建议将 /logger:trx 添加到其他控制台选项,但这始终会给我一个警告,说明该版本正在多个代理上运行,因此设置将被忽略。我们的发布并不是针对多个代理运行的,因此我不知道为什么我会看到这个警告。

    这项工作一直持续到最近,我一直在努力想知道到底发生了什么变化。我尝试创建一个全新的构建、新的代码库和运行的新测试,但这似乎无关紧要。

    告诉我你还需要什么信息。谢谢

    在我执行这些测试的第一个月,将生成一个.trx文件,其中包含来自specFlow的一些日志。我还可以使用system.diagnostics.trace.writeline记录自己的跟踪日志。所有这些都将显示在.trx文件中。

    .trx文件还将显示通过、失败或没有结论的测试的数量。如果我在Visual Studio中打开该文件,它将向我显示一个测试运行面板,其中包含每个测试及其结果的详细信息。

    然而,最近这种情况停止了。.trx文件仍然被创建,但基本上是空的。它说没有运行任何测试,所有跟踪日志都不显示。当我登录到控制台时,tfs仍然向我显示正确的信息,但是附加的.trx文件始终是2K,这意味着它只是XML文件的骨架。

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

    • 我们有一个测试计划,所以测试作为发布的一部分运行。该版本包含一个单独运行的Visual Studio测试任务 Test task configuration
    • .runsettings文件只包含 测试运行参数 部分。未配置其他设置。
    • 我们正在使用TFS 2017版本2。

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

    一些答案建议添加 /记录器:TRX 到其他控制台选项,但这始终会给我一个警告,说明该版本正在多个代理上运行,因此设置将被忽略。我们的释放不是针对多个特工的,所以我不知道为什么我会看到这个警告。

    这项工作一直持续到最近,我一直在努力想知道到底发生了什么变化。我尝试创建一个全新的构建、新的代码库和新的测试来运行,但这似乎无关紧要。

    告诉我你还需要什么信息。谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   bsayegh    6 年前

    我已经知道如何解决这个问题,但我不明白到底发生了什么,所以我希望有人能填补空白。

    TFS服务器上有多个版本的vstest.console.exe。当我选择时使用的那个 Visual Studio 2017年 因为版本是

    C:\程序文件(x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

    我不知道这是不是正确,但这就是正在使用的。我注意到在本地我使用的是不同的路径。

    C:\程序文件(x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

    我能够执行那个版本的vstest并在本地生成trx文件。另一个vstest.console.exe位于

    C:\程序文件(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的值,一切正常。

    我唯一能想到的是,专业版的vstest版本(我们使用的Visual Studio版本)与buildTools下的版本不同?测试将以任何一种方式成功运行,但专业版下的可执行文件也会生成trx文件。由于没有记录细节,很难知道发生了什么。

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