由于某种原因,我们大约四分之一的测试没有在 TFS 上运行,构建最终显示为绿色,但仅报告 3/4 表示所有测试均已通过。
我猜问题出在一些经过测试的异步代码中,这些代码可能会导致测试运行程序崩溃或继续自行运行。在 VS 本地,所有测试都顺利通过。
有没有办法在 TFS 上启用故障转储或者我应该如何解决这个问题?
编辑:在 TFS Web 界面中,摘要显示“所有 2217 个测试均已通过”,但在“诊断”部分,在通过的测试下显示“测试运行已完成。已执行 3228 个测试”...仍然不是全部(cca 3450 在 VS2015 中本地通过)
我检查了服务器上的最后版本,但就历史而言,它们当时已经失败了(总是经过不同的量)。所以我无法追踪到这一点。
我还使用 vstest.console.exe 运行了测试,除了 5 个在长文件路径上失败外,一切都很好(我禁用了那些带有“忽略属性”的测试,但没有效果)
由赏金启动者编辑:
很抱歉赏金框中的文字。没想到换行符会被吞掉。此处提供相同的文本。
我有完全相同的情况。假设我有 100 个测试,但只说 60 个最终在 .trx 文件中(假设 50 个通过,10 个失败)。解决这个问题就太好了。谢谢!
<Target Name="CoreTestConfiguration">
<Exec Command=""C:\Program Files\dotnet\dotnet.exe" vstest /Blame /Diag:"$(SolutionRoot)##########################\bin\Release\diag.txt" "$(SolutionRoot)###########################\#################s.dll" /logger:trx;LogFileName="$(SolutionRoot)\#################################\Tests\bin\Release\TestOutput.trx" /Settings:"$(SolutionRoot)\############################################ests\bin\Release\#################sts.runsettings""
ContinueOnError="true"/>
</Target>
<RunSettings>
<RunConfiguration>
<TestSessionTimeout>4400000</TestSessionTimeout>
<TestTimeout>342000</TestTimeout>
<TargetPlatform>X64</TargetPlatform>
<TargetFrameworkVersion>
.NETCoreApp,Version=v2.0
</TargetFrameworkVersion>
<!-- same with net461: but different count of tests in final trx -->
<!-- <TargetFrameworkVersion>
.NETFramework,Version=v4.6.1
</TargetFrameworkVersion> -->
<DesignMode>False</DesignMode>
<CollectSourceInformation>False</CollectSourceInformation>
</RunConfiguration>
<LoggerRunSettings>
<Loggers>
<Logger friendlyName="blame" enabled="True" />
<Logger friendlyName="Console" uri="logger://microsoft/TestPlatform/ConsoleLogger/v1" assemblyQualifiedName="Microsoft.VisualStudio.TestPlatform.CommandLine.Internal.ConsoleLogger, vstest.console, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" codeBase="C:\Program Files\dotnet\sdk\2.1.503\vstest.console.dll" enabled="True" />
</Loggers>
</LoggerRunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="blame" enabled="True">
<Configuration>
<ResultsDirectory>
############################\bin\Release
</ResultsDirectory>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
您使用哪个版本的测试框架?
您似乎想构建/运行 dotnet 核心应用程序。
在我看来,xunit 与 dotnet core 2.x 配合得很好。
还有一个新版本的 MS Test 框架可用,其中有一些有趣的改进。我在 dotnetpro 的一篇最新文章中读到了这一点。
也可以看看文章,dotnetpro(德国) https://www.dotnetpro.de/tools/testing/mstest-framework-v2-jetzt-open-source-1210979.html
希望这能帮助您解决这个问题,
再见
莱昂哈德
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)