【问题标题】:Showing Asp.Net.Core XUnit test results in Bamboo在 Bamboo 中显示 Asp.Net.Core XUnit 测试结果
【发布时间】:2016-09-28 12:04:20
【问题描述】:

我刚刚用了一天的大部分时间来解决这个问题。

这是问题所在:习惯于在 Bamboo 中使用 MSTest,它工作正常。

第一个使用 Asp.Net.Core 的项目出现了,带有 XUnit 测试,需要在 Bamboo 中进行设置。

Bamboo 不支持 XUnit 测试结果 xml 文件.. 唉...

怎么办?

【问题讨论】:

    标签: .net-core bamboo xunit


    【解决方案1】:

    升级到 .Net Core SDK 1.1.1 最终版本后,这更容易实现。

    执行下面会执行测试,并生成一个trx输出。

    dotnet test --logger trx
    

    也可以确定文件名

    dotnet test --logger "trx;LogFileName=myTestResults.trx"
    

    【讨论】:

      【解决方案2】:

      经过大量的摆弄,这是我使用的食谱。

      照常执行测试,输出结果到xml文件

      dotnet test .\MyProject\test\UnitTests -xml .\TestResults\UnitTests.xml
      

      通过 XSLT 转换运行输出 xml 并转换为 MsTest trx 格式

      $xml = Process-XSLT $PSScriptRoot\TestResults\UnitTests.xml $PSScriptRoot\BuildScripts\XUnitToMsTest.xlst 
      

      罪魁祸首来了。确保将 TRX xml 文件写入为 UTF-8 - 而不是 ascii 文件。尝试了几个小时来弄清楚为什么 Bamboo 不会提取测试文件 - 直到我意识到这一点。

      Out-File -FilePath $PSScriptRoot\TestResults\UnitTests.trx -InputObject $xml -Encoding UTF8
      

      来源:

      XUnit 到 TRX:https://github.com/deloitte-solvas/XSLT-xUnit-To-Trx

      ProcessXSLT : https://gist.github.com/wschwarz/5073004(有一些错误)

      我自己的 ProcessXSLT 的整个源代码:

      function Process-XSLT([string]$inputFile, [string]$xsl)
      {
          $fileStream = New-Object -TypeName System.IO.FileStream($inputFile, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read);
          $fileStream.position = 0
          $xml = new-object System.Xml.XmlTextReader($fileStream)
          $output = New-Object System.IO.MemoryStream
          $xslt = New-Object System.Xml.Xsl.XslCompiledTransform
          $arglist = new-object System.Xml.Xsl.XsltArgumentList
          $reader = new-object System.IO.StreamReader($output)
          $xslt.Load($xsl)
          $xslt.Transform($xml, $arglist, $output)
          $output.position = 0
      
          $transformed = [string]$reader.ReadToEnd()
          $reader.Close()
          return $transformed
      }
      

      当上述所有操作都正确完成后,剩下要做的就是将 MSTest Parser 任务添加到您的 Bamboo 构建中,指向 TestResults 文件夹。

      https://confluence.atlassian.com/bamboo/mstest-parser-289277057.html

      我希望我能用这篇文章为别人节省几分钟。

      Bamboo 绝对不会告诉我文件无效 - 它只是表示无法获取任何结果。 :-)

      最好的问候 /安德斯

      【讨论】:

      • 这是为 1.0.0 preview2 bits 准备的。
      猜你喜欢
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 2020-05-28
      • 2012-03-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 2022-10-24
      相关资源
      最近更新 更多