TFS虽然构建为绿色,但并非所有测试都已运行

时间:2016-04-17 18:27:16

标签: unit-testing tfs tfs2015

由于某些原因,我们的测试中有四分之一没有在TFS上运行,因此构建结果为绿色但仅报告3/4表示所有测试都已通过。 我想这个问题出现在一些经过测试的异步代码中,这些代码可能会使测试运行器崩溃或者继续运行。在VS的本地所有测试都通过了。 有没有办法在TFS上启用故障转储,或者我该如何解决这个问题?

编辑:在TFS网络界面中,摘要说"所有2217测试通过"但是在Diagnotics部分,在通过的测试下,它说"测试运行完成。执行了3228次测试" ...仍然不是全部(在VS2015中本地通过cca 3450)

我检查了服务器上的最后一个版本,但就历史而言,它们已经失败了(总是不同的amonut已经通过)。所以我无法追踪它。

我还用vstest.console.exe运行了测试,一切都很好,除了长文件路径上的5个失败(我禁用那些使用Ignore attribbute无效)

由赏金首发编辑:

抱歉赏金框中的文字。没想到会被吞下线。在这里提供相同的文字。

  

我的情况完全相同。假设我有100个测试,但只有60个最终在.trx文件中(例如50个通过,10个失败)。解决这个问题会很棒。谢谢!

<Target Name="CoreTestConfiguration">
  <Exec Command="&quot;C:\Program Files\dotnet\dotnet.exe&quot; vstest /Blame /Diag:&quot;$(SolutionRoot)##########################\bin\Release\diag.txt&quot; &quot;$(SolutionRoot)###########################\#################s.dll&quot;  /logger:trx;LogFileName=&quot;$(SolutionRoot)\#################################\Tests\bin\Release\TestOutput.trx&quot; /Settings:&quot;$(SolutionRoot)\############################################ests\bin\Release\#################sts.runsettings&quot;"
  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>

1 个答案:

答案 0 :(得分:2)

您正在使用哪个版本的测试框架? 看来您想构建/运行一个dotnet核心应用程序。 在我看来,xunit在dotnet core 2.x上可以正常工作。 还有一个可用的新版本的MS Test框架,它具有一些有趣的改进。我在最新的dotnetpro文章中读到了这篇文章。 也可以看看 Article, dotnetpro (GER)

希望这可以帮助您解决此问题, 再见 莱昂哈德