我目前运行一套测试,在TestFixtureTearDown中,我查找“nunit-report.xml”并生成包含结果的网页。问题是nunit不会生成这个文件,直到它完成了拆解。有什么办法可以在拆卸时使用c#在代码中终止nunit吗?
答案 0 :(得分:2)
NUnit在测试完成后生成它的XML输出。这是有道理的,因为生成报告的信息在测试全部运行之后才可用。
您可能没有意识到,TestFixtureTearDown
是您的测试的一部分。例如,即使到目前为止一切正常,TestFixtureTearDown
也可能抛出异常并给出错误结果。当然,您可能有多个夹具在TestFixtureTearDown
完成特定夹具时仍然可以运行。
以上在所有版本的NUnit中都是如此。你可以做些什么在NUnit V2和NUnit 3之间有所不同。你使用术语TestFixtureTearDown
,我首先假设一个旧版本的NUnit ......
在NUnit V2中,XML输出由控制台运行程序自身生成。直到跑步者退出后才能使用它。如果要编写代码以从中生成报告,则必须编写一个单独的程序,该程序在测试完成后运行。
在NUnit 3中,输出由引擎创建,但仍然是控制台运行程序的请求。不同之处在于NUnit 3支持引擎扩展。您可以将代码编写为报表编写器扩展,并从命令行调用它。通过您编写的适当扩展,您可以例如使用nunit3-console mytest.dll --result:myreport.html;format:myhtml
NUnit3还使您能够基于xslt转换创建新的输出格式,如果这种事情对您有吸引力的话。 : - )