Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core 在竹子中显示Asp.Net.Core XUnit测试结果_.net Core_Bamboo_Xunit - Fatal编程技术网

.net core 在竹子中显示Asp.Net.Core XUnit测试结果

.net core 在竹子中显示Asp.Net.Core XUnit测试结果,.net-core,bamboo,xunit,.net Core,Bamboo,Xunit,我用了一天的大部分时间才弄明白这一点 问题是:在竹子中使用MSTest,效果很好 第一个使用Asp.Net.Core和XUnit测试的项目出现了,需要在竹子中进行设置 竹不支持XUnit测试结果xml文件。。叹息 怎么办 在这方面做了很多修改之后,这是我使用的配方 像往常一样执行测试,将结果输出到xml文件 dotnet test .\MyProject\test\UnitTests -xml .\TestResults\UnitTests.xml 通过XSLT转换运行输出xml并转换为MsT

我用了一天的大部分时间才弄明白这一点

问题是:在竹子中使用MSTest,效果很好

第一个使用Asp.Net.Core和XUnit测试的项目出现了,需要在竹子中进行设置

竹不支持XUnit测试结果xml文件。。叹息


怎么办

在这方面做了很多修改之后,这是我使用的配方

像往常一样执行测试,将结果输出到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文件。我花了好几个小时想弄明白为什么竹子不会拿起测试文件——直到我意识到这一点

Out-File -FilePath $PSScriptRoot\TestResults\UnitTests.trx -InputObject $xml -Encoding UTF8
资料来源:

XUnit至TRX:

ProcessXSLT:(有一些bug)

我自己的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解析器任务添加到您的构建中,指向TestResults文件夹

我希望这篇文章能为其他人节省几分钟时间

竹绝对不会告诉我这些文件是无效的——它只是说没有结果可以查到。:-)

致意
/Anders

在升级到.Net Core SDK 1.1.1的最后一位后,这将更容易实现

执行以下命令将执行测试,并生成trx输出

dotnet test --logger trx
或者也可以确定文件名

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

这适用于1.0.0预览2位。