以编程方式收集NUnit结果

以编程方式收集NUnit结果,nunit,nunit-console,Nunit,Nunit Console,当我的夜间构建完成时,我会自动运行一些NUnit测试。我有一个控制台应用程序,它检测新的构建,然后将构建的MSI复制到本地文件夹,并将我的所有组件部署到测试服务器。之后,我在NUnit dll中进行了一系列测试,通过使用Process/ProcessStartInfo执行“NUnit console.exe”来运行这些测试。我的问题是,如何以编程方式获得总成功/失败测试的数字?< P>您是否考虑过使用像CraceCeTracl?NET?/P>这样的连续集成服务器? 它为您构建和运行测试,并在网页

当我的夜间构建完成时,我会自动运行一些NUnit测试。我有一个控制台应用程序,它检测新的构建,然后将构建的MSI复制到本地文件夹,并将我的所有组件部署到测试服务器。之后,我在NUnit dll中进行了一系列测试,通过使用Process/ProcessStartInfo执行“NUnit console.exe”来运行这些测试。我的问题是,如何以编程方式获得总成功/失败测试的数字?

< P>您是否考虑过使用像CraceCeTracl?NET?/P>这样的连续集成服务器? 它为您构建和运行测试,并在网页中显示结果。如果您只需要一个工具,请让
nunit console.exe
以XML格式输出结果,并使用XSLT脚本解析/转换它,就像来自巡航控制系统的脚本一样

如果在
nunit console.exe的直接输出上运行转换,则必须调整select语句并删除cruisecontrol


不过,听起来您可能对持续集成感兴趣。

我们最近有一个类似的需求,并编写了一个小型开源库,将结果文件合并到一个结果集合中(就像您使用nunit console的一次运行运行运行了所有测试一样)


您可以在

中找到它,我们有一个类似的要求,我们所做的是读取NUnit生成的测试结果XML文件

XmlDocument testresultxmldoc = new XmlDocument();
testresultxmldoc.Load(this.nunitresultxmlfile);

XmlNode mainresultnode = testresultxmldoc.SelectSingleNode("test-results");
this.MachineName = mainresultnode.SelectSingleNode("environment").Attributes["machine-name"].Value;
int ignoredtests = Convert.ToInt16(mainresultnode.Attributes["ignored"].Value);
int errors = Convert.ToInt16(mainresultnode.Attributes["errors"].Value);
int failures = Convert.ToInt16(mainresultnode.Attributes["failures"].Value);
int totaltests = Convert.ToInt16(mainresultnode.Attributes["total"].Value);
int invalidtests = Convert.ToInt16(mainresultnode.Attributes["invalid"].Value);
int inconclusivetests = Convert.ToInt16(mainresultnode.Attributes["inconclusive"].Value);
我将引述:

控制台运行程序现在对尝试运行测试时遇到的错误使用负返回代码。测试本身的失败或错误会给出一个正返回码,该返回码等于此类失败或错误的数量

(我的重点)。这里的含义是,与bash中的常见情况一样,返回0表示成功,非零表示失败或错误(如上所述)


HTH

链接似乎已断开。获取错误\u名称\u未\u解决