我们一直在使用TFS来运行自动化测试。测试可以作为构建的一部分运行,也可以根据测试计划的要求运行。我们正在使用Specflow生成测试方案。
对于我执行这些测试的第一个月,将生成一个.TRX文件,其中包含来自specflow的一些日志。我还可以使用System.Diagnostics.Trace.WriteLine记录自己的跟踪日志。所有这些都将显示在.Trx文件中。
.TRX文件还将显示通过,失败或不确定的测试数量。如果我在Visual Studio中打开该文件,它将显示一个“测试运行”面板,其中包含每个测试及其结果的详细信息。
但是,最近这种情况停止了。 .TRX文件仍被创建,但是基本上是空的。它说没有运行测试,并且我的所有跟踪日志都不显示。当我登录到控制台时,TFS仍会向我显示正确的信息,但是附加的.TRX文件始终为2k,这意味着它只是xml文件的框架。
以下是我们如何运行测试的一些细节:
我以为Specflow可能与此有关,但是即使没有Specflow的简单MSTest也无法正确记录。
一些答案建议将 / Logger:trx 添加到“其他控制台选项”,但这总是给我一个警告,指出该版本正在多个代理上运行,因此设置将被忽略。我们的发行版不会在多个代理上运行,所以我不知道为什么会看到该警告。
这项工作一直持续到最近,我试图找出发生了什么变化。我尝试创建一个全新的版本,新的代码库和新的测试来运行,但这似乎并不重要。
让我知道您需要什么其他信息。谢谢
答案 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文件。由于未记录任何详细信息,因此很难判断发生了什么。
希望有人可以解释这里发生的事情,但至少有同样问题的任何人都可以尝试一下。