我尝试使用cake脚本运行使用cake脚本在Xunit中编写的测试用例,我需要知道传递的数量和失败的测试用例数.
#tool "nuget:?package=xunit.runner.console" var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); XUnit2(testAssemblies);
参考:http://www.cakebuild.net/dsl/xunit-v2
任何人都可以建议如何获得通过和失败的测试用例的数量?
解决方法
您必须使用
XUnit2Aliases.XUnit2(IEnumerable < FilePath >,XUnit2Settings)
XmlPeekAliases来读取XUnit输出.
var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); XUnit2(testAssemblies,new XUnit2Settings { Parallelism = ParallelismOption.All,HtmlReport = false,NoAppDomain = true,XmlReport = true,OutputDirectory = "./build" });
xml格式为:(XUnit documentation,the example source,more information in Reflex)
<?xml version="1.0" encoding="UTF-8"?> <testsuite name="nosetests" tests="1" errors="1" failures="0" skip="0"> <testcase classname="path_to_test_suite.TestSomething" name="test_it" time="0"> <error type="exceptions.TypeError" message="oops,wrong type"> Traceback (most recent call last): ... TypeError: oops,wrong type </error> </testcase> </testsuite>
然后,以下代码段应该为您提供以下信息:
var file = File("./build/report-err.xml"); var failuresCount = XmlPeek(file,"/testsuite/@failures"); var testsCount = XmlPeek(file,"/testsuite/@tests"); var errorsCount = XmlPeek(file,"/testsuite/@errors"); var skipCount = XmlPeek(file,"/testsuite/@skip");