【发布时间】:2018-01-12 13:09:21
【问题描述】:
我目前正在运行一套测试,并在 TestFixtureTearDown 中查找“nunit-report.xml”并生成带有结果的网页。问题是 nunit 不会生成这个文件,直到它运行完拆解。有什么方法可以在代码中使用 c# 来终止 nunit 吗?
【问题讨论】:
标签: c# xamarin nunit nunit-console
我目前正在运行一套测试,并在 TestFixtureTearDown 中查找“nunit-report.xml”并生成带有结果的网页。问题是 nunit 不会生成这个文件,直到它运行完拆解。有什么方法可以在代码中使用 c# 来终止 nunit 吗?
【问题讨论】:
标签: c# xamarin nunit nunit-console
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 调用 NUnit
NUnit3 还使您能够基于 xslt 转换创建新的输出格式,如果这种东西对您有吸引力的话。 :-)
【讨论】: