我正在通过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/