无法使用c#在selenium中生成Extent报告(版本3.1.3)
我是C#的新手,我正在尝试使用ExtentReports生成报告(使用版本:3.13)。 任何帮助都将非常感谢谢谢。
我收到以下错误:消息:System.InvalidOperationException:没有记者被启动。 Atleast 1记者必须开始创建测试。
这是我的代码:`
using AventStack.ExtentReports; using AventStack.ExtentReports.Reporter; using NUnit.Framework; using NUnit.Framework.Interfaces; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AutomationReports { class ReportsGenerationClass { protected ExtentReports _extent; protected ExtentTest _test; [OneTimeSetUp] protected void Setup() { var dir = TestContext.CurrentContext.TestDirectory + "\\"; var fileName = this.GetType().ToString() + ".html"; var htmlReporter = new ExtentHtmlReporter(dir + fileName); _extent = new ExtentReports(); _extent.AttachReporter(htmlReporter); } [OneTimeTearDown] protected void TearDown() { _extent.Flush(); } [SetUp] public void BeforeTest() { _test = _extent.CreateTest(TestContext.CurrentContext.Test.Name); } [TearDown] public void AfterTest() { var status = TestContext.CurrentContext.Result.Outcome.Status; var stacktrace = string.IsNullOrEmpty(TestContext.CurrentContext.Result.StackTrace) ? "" : string.Format("{0}", TestContext.CurrentContext.Result.StackTrace); Status logstatus; switch (status) { case TestStatus.Failed: logstatus = Status.Fail; break; case TestStatus.Inconclusive: logstatus = Status.Warning; break; case TestStatus.Skipped: logstatus = Status.Skip; break; default: logstatus = Status.Pass; break; } _test.Log(logstatus, "Test ended with " + logstatus + stacktrace); _extent.Flush(); } [Test] public void PassingTest() { ExtentReports extent = new ExtentReports(); _test = extent.CreateTest("PassingTest"); Driver.Navigate().GoToUrl("http://www.google.com"); try { Assert.IsTrue(true); _test.Pass("Assertion passed"); _test.Log(Status.Pass, "Pass"); } catch (AssertionException) { _test.Fail("Assertion failed"); _test.Log(Status.Fail, "Fail"); throw; } } } }
在PassingTest
方法中,删除以下行:
ExtentReports extent = new ExtentReports(); _test = extent.CreateTest("PassingTest");
它应该工作。
您已经在[OneTimeSetUp]
和[SetUp]
方法中正确初始化了ExtentReports
对象和ExtentReports
字段,但是您在测试方法中冗余且错误地覆盖了它。
- 为什么所有Glass.Mapper字段都是虚拟的?
- 如何在数据库中保存图像并将其显示在MVC 4中的视图中?
- 如何处理抛出外部dll的exception?
- Selenium – 带透明代理的MoveToElement()
- Interop.Word Documents.Open为null
- 如何获取实现给定接口的所有已加载类型的所有实例?
- $ project或$ group不支持
- 如何使用FlowDocument的IDocumentPaginatorSource DocumentPaginator将FlowDocument转换为FixedDocument?
- C#规范(团队?委员会?)是否曾考虑过这种对象创建语法?