2016-09-28 24 views
3

我刚刚用了很多时间来研究这一个。在竹中显示Asp.Net.Core XUnit测试结果

这里是问题:被用来在竹中使用MSTest,它工作正常。

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

竹不支持的xUnit测试结果XML文件..唉...

怎么办?

回答

6

升级到.NET核心SDK 1.1.1最后位之后,这是很容易achived。

执行下面的命令将执行测试,并生成一个trx输出。

dotnet test --logger trx 

可选择地确定的文件名以及

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

经过大量的摆弄这里是我使用的配方。

执行测试和往常一样,输出结果以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

我希望我救别人用这个帖子几分钟。

竹是绝对没有办法告诉我的文件是无效的 - 它只是说,没有结果可以拿起。 :-)

问候 /安德斯

+0

这是1.0.0 preview2比特。 – ankhansen

相关问题