我剛剛用了很多時間來研究這一個。在竹中顯示Asp.Net.Core XUnit測試結果
這裏是問題:被用來在竹中使用MSTest,它工作正常。
使用Asp.Net.Core的第一個項目,隨着XUnit測試出現,需要在Bamboo中進行設置。
竹不支持的xUnit測試結果XML文件..唉...
怎麼辦?
我剛剛用了很多時間來研究這一個。在竹中顯示Asp.Net.Core XUnit測試結果
這裏是問題:被用來在竹中使用MSTest,它工作正常。
使用Asp.Net.Core的第一個項目,隨着XUnit測試出現,需要在Bamboo中進行設置。
竹不支持的xUnit測試結果XML文件..唉...
怎麼辦?
升級到.NET核心SDK 1.1.1最後位之後,這是很容易achived。
執行下面的命令將執行測試,並生成一個trx輸出。
dotnet test --logger trx
可選擇地確定的文件名以及
dotnet test --logger "trx;LogFileName=myTestResults.trx"
經過大量的擺弄這裏是我使用的配方。
執行測試和往常一樣,輸出結果以XML文件
dotnet test .\MyProject\test\UnitTests -xml .\TestResults\UnitTests.xml
運行輸出XML通過XSLT轉換並轉換爲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解析器任務添加到您的Bamboo構建中,指向TestResults文件夾。
https://confluence.atlassian.com/bamboo/mstest-parser-289277057.html
我希望我救別人用這個帖子幾分鐘。
竹是絕對沒有辦法告訴我的文件是無效的 - 它只是說,沒有結果可以拿起。 :-)
問候 /安德斯
這是1.0.0 preview2比特。 – ankhansen