在 YouTube 演示中,我得到了这段代码,但我得到了这个让我难过的错误 - ‘ExtentReports’ 不包含采用 2 个参数的构造函数。我的参考错了吗?我正在使用 ExtentReports 3.03 版
using NUnit.Framework;
using AventStack.ExtentReports;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ExtentDemoYoutube
{
[TestFixture]
public class BasicReport
{
public ExtentReports extent;
public ExtentTest test;
[OneTimeSetUp]
public void StartReport()
{
string pth = System.Reflection.Assembly.GetCallingAssembly().CodeBase;
string actualPath = pth.Substring(0, pth.LastIndexOf("bin"));
string projectPath = new Uri(actualPath).LocalPath;
string reportPath = projectPath + "Reports\\MyOwnReport.html";
extent = new ExtentReports(reportPath, true);
extent.AddSystemInfo("Host Name", "Joe Loyzaga")
.AddSystemInfo("Environment", "QA")
.AddSystemInfo("User Name", "Joe Loyzaga");
extent.LoadConfig(projectPath + "extent-config.xml");
}
[Test]
public void DemoReportPass()
{
test = extent.StartTest("DemoReportPass");
Assert.IsTrue(true);
test.log(LogStatus.Pass, "Assert Pass as condition is True");
}
[Test]
public void DemoReportFail()
{
test = extent.StartTest("DemoReportFail");
Assert.IsTrue(false);
test.log(LogStatus.Pass, "Assert Pass as condition is Fail");
}
[TearDown]
public void GetResult()
{
var status = TestContext.CurrentContext.Result.Outcome.Status;
var stackTrace = "<pre>" +TestContext.CurrentContext.Result.StackTrace+"</pre>";
var errorMessage = TestContext.CurrentContext.Result.Message;
if(status==NUnit.Framework.Interfaces.TestStatus.Failed)
{
test.Log(LogStatus.Fail, stackTrace + errorMessage);
}
extent.EndTest(test);
}
[OneTimeTearDown]
public void EndReport()
{
extent.Flush();
extent.Close();
}
}
}
原文由 joe loyzaga 发布,翻译遵循 CC BY-SA 4.0 许可协议
回答上述问题:使用 RelevantCodes.ExtentReports。转到管理 Nuget 包 -> 浏览 ExtentReports。下载前选择版本2.41.0然后安装。 2.41.0 支持 RelevantCodes.ExtentReport,而版本 4.0.3 支持 Aventstack.ExtentReports。