Nunit 为成功的测试用例指定输出消息

Nunit 为成功的测试用例指定输出消息,nunit,Nunit,每个Assert都允许定义错误消息,如果Assert失败,这些消息将被打印出来,但是我是否可以提供一条消息,如果测试成功,这些消息将被输出?您可以使用实用程序方法 您说过希望此信息供持续集成环境使用。您的CI环境可能正在使用 如果是这样的话,我建议使用从每个测试运行生成的XML输出,可以找到其中的示例 XML输出包含每个测试的结果。您还没有说您使用的是哪台CI服务器,但在构建过程中构建一个步骤来导入此XML并挖掘它以获取所需的统计信息应该很简单。我只使用Console.WriteLine(“此处

每个
Assert
都允许定义
错误消息
,如果Assert失败,这些消息将被打印出来,但是我是否可以提供一条消息,如果测试成功,这些消息将被输出?

您可以使用实用程序方法

您说过希望此信息供持续集成环境使用。您的CI环境可能正在使用

如果是这样的话,我建议使用从每个测试运行生成的XML输出,可以找到其中的示例


XML输出包含每个测试的结果。您还没有说您使用的是哪台CI服务器,但在构建过程中构建一个步骤来导入此XML并挖掘它以获取所需的统计信息应该很简单。

我只使用
Console.WriteLine(“此处的消息”)将被定向到NUnit输出,以便您可以看到测试通过的消息

您应该处理
NUnit.Framework.SuccessException
并打印消息:

试试看
{
//断言
Assert.Pass(sOutput);
}
捕获(成功例外)
{
控制台写入线(例如消息);
返回;
}
因此,您应该在单击“输出”下获得输出消息:


这正是我所做的,使用XML输出。但是另外,我想在进行测试的同时提供一些信息。你能给我举一个有用的信息的例子吗?如果测试通过,则消息可能总是相同的…?按照您的示例,最好有类似smth的-。。。但是对于成功的测试,当出现故障时,您需要调试测试的特定数据,因此消息是有意义的。但对于成功来说,除了“再次按预期通过”之外,还有什么有用的消息呢?但这会导致抛出SuccessException,导致测试失败。这肯定违背了目的吗?@Carl-你用的是哪个NUnit版本?哪位选手?@Peter-nunit2.5.5和TD.NET 3.0。2749@Carl:From NUnit docs:Assert.Pass方法允许您立即结束测试,并将其记录为成功。我在用NUNit。我使用的是2.5.10.11092,一切正常,这可能是TD.NET特有的行为吗?@Peter:可能,我会在Gui运行程序中尝试一下,看看会发生什么。似乎与集成到SharpDevelop中的NUnit版本不兼容。只是为了更新最后的信息。。。现在#develope确实显示控制台输出。:-)我不知道如何做到这一点,但是,你为什么需要它呢?显示错误堆栈跟踪是有意义的;这有助于程序员纠正错误。但我不认为显示自定义的成功消息有什么意义。对于一些测试用例,我希望在使用持续集成系统运行测试时跟踪这些信息,该系统为每个构建保留日志。另外,当我想查看一些测试运行信息时,我可以在控制台中运行测试并查看这些信息,而不是在断点处处理或使用一些输出,如logging或System.Diagnostics.DebugThe
try/catch
,因为会引发异常。这个答案似乎有效地完成了与这个答案相同的事情,但只需要一行代码。(我使用的是V.S.2015和NUnit 3.11。)