我正在使用SpecFlow和Selenium运行自动化的单元测试。 SpecFlow提供BeforeTestRun
,BeforeFeature
和BeforeScenario
属性,以在适当的时间在测试之间执行代码。
我也在使用log4net记录测试输出。
如果在测试期间或BeforeScenario
阶段测试失败,则可以看到输出记录。
但是如果在BeforeTestRun
或BeforeFeature
期间测试失败,则没有可用的输出。
这使得在远程测试服务器上早期诊断测试失败时难以诊断,而我所拥有的只是输出日志。
如果在单个测试开始之前测试失败,是否可以使用log4net获取输出日志?
答案 0 :(得分:0)
您可以引用TestResult和TestContext对象来实现自定义方法。您可以在[TearDown]或测试结束的某个地方调用它:
if (TestContext.CurrentContext.Result.Outcome.Status.ToString() == "Failed")
{
string message = TestContext.CurrentContext.Result.Message;
string logs = TestContext.CurrentContext.Result.StackTrace;
}
else if (TestContext.CurrentContext.Result.Outcome.Status.ToString() == "Passed")
{
//User defined action
}
else
{
string otherlog = TestContext.CurrentContext.Result.Outcome.Status.ToString();
}
答案 1 :(得分:0)