C# 如何在拆卸中获取nunit Runner生成的nunit-report.xml文件

C# 如何在拆卸中获取nunit Runner生成的nunit-report.xml文件,c#,xamarin,nunit,nunit-console,C#,Xamarin,Nunit,Nunit Console,我目前运行一套测试,在TestFixtureTearDown中查找“nunit report.xml”,并生成一个包含结果的网页。问题是,nunit在完成拆卸之前不会生成此文件。有没有什么方法可以在代码中使用c#终止nunit?在测试完成后,nunit生成它的XML输出。这是有道理的,因为生成报告的信息在所有测试都运行之后才可用 您可能没有意识到的是,您的TestFixtureTearDown是您测试的一部分。例如,即使到目前为止一切正常,TestFixtureTearDown也可能引发异常并给

我目前运行一套测试,在TestFixtureTearDown中查找“nunit report.xml”,并生成一个包含结果的网页。问题是,nunit在完成拆卸之前不会生成此文件。有没有什么方法可以在代码中使用c#终止nunit?在测试完成后,nunit生成它的XML输出。这是有道理的,因为生成报告的信息在所有测试都运行之后才可用

您可能没有意识到的是,您的
TestFixtureTearDown
是您测试的一部分。例如,即使到目前为止一切正常,
TestFixtureTearDown
也可能引发异常并给出错误结果。当然,您可能有多个fixture在特定fixture的
TestFixtureTearDown
完成时仍要运行

上述情况适用于NUnit的所有版本。在NUnit V2和NUnit 3之间,您可以对其执行不同的操作。既然您使用了术语
TestFixtureTearDown
,我将首先假设NUnit的旧版本

在NUnitV2中,XML输出由控制台运行程序本身生成。跑步者退出后才能使用。如果您想编写代码从中生成报告,则必须编写一个单独的程序,在测试完成后运行该程序

在NUnit 3中,输出是由引擎创建的,但仍应控制台运行程序的请求。不同之处在于NUnit 3支持对引擎的扩展。您可以将代码编写为报表编写器扩展,并从命令行调用它。使用您编写的适当扩展,您可以使用
nunit3控制台mytest.dll调用NUnit——结果:myreport.html;格式:myhtml


NUnit3还使您能够基于xslt转换创建新的输出格式,如果您喜欢这种格式的话。:-)

NUnit在测试完成后生成其XML输出。这是有道理的,因为生成报告的信息在所有测试都运行之后才可用

您可能没有意识到的是,您的
TestFixtureTearDown
是您测试的一部分。例如,即使到目前为止一切正常,
TestFixtureTearDown
也可能引发异常并给出错误结果。当然,您可能有多个fixture在特定fixture的
TestFixtureTearDown
完成时仍要运行

上述情况适用于NUnit的所有版本。在NUnit V2和NUnit 3之间,您可以对其执行不同的操作。既然您使用了术语
TestFixtureTearDown
,我将首先假设NUnit的旧版本

在NUnitV2中,XML输出由控制台运行程序本身生成。跑步者退出后才能使用。如果您想编写代码从中生成报告,则必须编写一个单独的程序,在测试完成后运行该程序

在NUnit 3中,输出是由引擎创建的,但仍应控制台运行程序的请求。不同之处在于NUnit 3支持对引擎的扩展。您可以将代码编写为报表编写器扩展,并从命令行调用它。使用您编写的适当扩展,您可以使用
nunit3控制台mytest.dll调用NUnit——结果:myreport.html;格式:myhtml


NUnit3还使您能够基于xslt转换创建新的输出格式,如果您喜欢这种格式的话。:-)

感谢您的回复@Charlie我使用的是旧版本的Nunit,因为我正在Xamarin UI Test中编写测试,它们只支持版本2.6.4。我理解问题所在,但希望有某种方法可以调用xml报告文件的创建。如果不可能,那么我将在套件运行后继续运行代码以从报告生成结果页。感谢您的回复@Charlie我正在使用旧版本的Nunit,因为我正在Xamarin UI Test中编写测试,它们只支持2.6.4版。我理解问题所在,但希望有某种方法可以调用xml报告文件的创建。如果不可能,那么在套件运行后,我将继续运行代码以从报告生成结果页面。