c# - 使用C#中的Specflow将测试失败消息发送给测试人员

标签 c# testing exception-handling qa specflow

我正在通过Specflow为QA编写测试代码。

目前,测试已充满断言(例如:Assert.IsTrue(foo,“ foo不正确,测试无法继续”))),并显示失败消息。当某个步骤或步骤的一部分失败时,我们将引发带有错误消息的Exception异常,并将其捕获到顶层。

问题是现在“失败消息”包含非常长的“异常”消息(包含确切的文件,方法和类名-信息对于测试人员而言并不重要)。

我想知道是否有一种方法可以忽略顶层异常消息的特定部分。
要么
也许使用另一种策略,而不是使用异常throw \ catch和Assertions。

最佳答案

听起来好像断言失败时您只是不想要堆栈信息。许多人在尝试调试时发现此功能很有用,所以我建议您隐藏它而不是摆脱它。

由于所有SpecFlow所做的工作都是将功能文件转换为测试(现在假设为nunit),因此要运行测试,只需像通常那样运行NUnit。如果使用nunit-console.exe来执行,则SpecFlow开箱即用提供了一个html报告生成器来执行您要的操作。如果您正在使用mstest,那么它也适用于mstest。

它列出了所有测试并将其显示为红色或绿色,并具有[显示] / [隐藏]选项,使您仅在关心时才显示更多信息。您可以修改报告生成器以对测试输出进行任何操作,但我真的建议您将其保留在其中。

下面的链接向您展示了如何进行设置。我们已经在CI中运行了它,但是您可以编写批处理脚本,甚至可以通过C#执行它。

https://github.com/techtalk/SpecFlow/wiki/Reporting

NUnit运行器

nunit-console.exe /labels /out=TestResult.txt /xml=TestResult.xml bin\Debug\BookShop.AcceptanceTests.dll



输出文件具有console.WriteLine信息
xml文件具有测试结果


SpecFlow报告生成器

specflow.exe nunitexecutionreport BookShop.AcceptanceTests.csproj /out:MyResult.html



生成供测试人员阅读并采取行动的html报告

关于c# - 使用C#中的Specflow将测试失败消息发送给测试人员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855351/

相关文章:

java - 如何知道抛出了哪个异常

C# StandardOutput 挂起,如何检测它正在等待输入?

c# - 如何编写一个返回 6 个字符长度的唯一字符串的方法?

python - 如何修复此无效语法错误

android - 未连接。调用 Connect 或等待 onConnected() 被调用

php - 为生产覆盖 Kohana_Exception::_handler() - 3.3

c# - WPF-VB6 Interop 导致计时器运行时错误

c# - 如何使 TextBox 使用密码字符而不是在 wpf 中使用密码框?

perl - Perl 中浮点等效的单元测试

ruby-on-rails - 密码,Password_Confirmation ActiveModel::MassAssignmentSecurity::Error: