Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在数据块报告中编译所有测试套件的结果_C#_Selenium_Selenium Webdriver_Nunit_Extentreports - Fatal编程技术网

C# 在数据块报告中编译所有测试套件的结果

C# 在数据块报告中编译所有测试套件的结果,c#,selenium,selenium-webdriver,nunit,extentreports,C#,Selenium,Selenium Webdriver,Nunit,Extentreports,扩展数据块报告仅报告已运行的最后一个测试套件 我已经用10套不同的套装设置了selenium测试,按顺序运行。问题是扩展报告只记录最后一个套件的结果。我尝试了不同的方法来执行报告,以汇编所有结果 代码结构: BaseSetUp类-初始化驱动程序(OneTimeSetUp、SetUp、TearDown、OneTimeEartDown) Generalmethod调用-从BaseSetUp继承 PageObject页面-获取所有页面对象 TestSuits-继承自常规方法 我在BaseSetUp类中

扩展数据块报告仅报告已运行的最后一个测试套件

我已经用10套不同的套装设置了selenium测试,按顺序运行。问题是扩展报告只记录最后一个套件的结果。我尝试了不同的方法来执行报告,以汇编所有结果

代码结构: BaseSetUp类-初始化驱动程序(OneTimeSetUp、SetUp、TearDown、OneTimeEartDown)

Generalmethod调用-从BaseSetUp继承

PageObject页面-获取所有页面对象

TestSuits-继承自常规方法

我在BaseSetUp类中有如下报告:

[OneTimeSetUp]
    public void Setup()
    {

        try
        {
            extent = new ExtentReports();
            var dir = AppDomain.CurrentDomain.BaseDirectory.Replace("\\bin\\Debug", "");
            var htmlReporter = new ExtentHtmlReporter(dir + "\\Test_Execution_Reports" + "\\Automation_Report" + ".html");
            extent.AddSystemInfo("Environment", "Xylect AT");
            extent.AddSystemInfo("User Name", "Lucas");
            extent = new ExtentReports();
            extent.AttachReporter(htmlReporter);


        }
        catch (Exception e)
        {
            throw (e);
       }}



 [SetUp]
    public void BeforeTest()
    {
        try
        {
            _test = extent.CreateTest(TestContext.CurrentContext.Test.Name);
        }
        catch (Exception e)
        {
            throw (e);
        }
    }


    [TearDown]
    public void AfterTest()
    {
        try
        {
            var status = TestContext.CurrentContext.Result.Outcome.Status;
            var stacktrace = "" + TestContext.CurrentContext.Result.StackTrace + "";
            var errorMessage = TestContext.CurrentContext.Result.Message;
            Status logstatus;
            switch (status)
            {
                case TestStatus.Failed:
                    logstatus = Status.Fail;
                    string screenShotPath = Capture(driver, TestContext.CurrentContext.Test.Name);
                    _test.Log(logstatus, "Test ended with " + logstatus + " – " + errorMessage);
                    _test.Log(logstatus, "Snapshot below: " + _test.AddScreenCaptureFromPath(screenShotPath));

                    break;
                case TestStatus.Skipped:
                    logstatus = Status.Skip;
                    _test.Log(logstatus, "Test ended with " + logstatus);
                    break;
                default:
                    logstatus = Status.Pass;
                    _test.Log(logstatus, "Test ended with " + logstatus);
                    break;
            }


        }
        catch (Exception e)
        {
            throw (e);
        }
    }

   [OneTimeTearDown]
    public void TearDown()
    {

        try
        {

            //zip();
            //Email();
            extent.Flush();
            driver.Close();
            driver.Quit();
        }
        catch (Exception e)
        {

            throw (e);
        }

    }
我见过一些方法,将上一个报告添加到“新”创建的报告中,但我没有让它起作用

其中一个测试套件中的测试用例示例

        [TestCase(TestName = "01_LogIn"), Order(1)]
    public void LogIn()
    {
        LogIn();
        string loginAssert = HomePage.expLoginName.Text;
        Assert.IsTrue(loginAssert.Contains("Hi, " + username + ""), "Login falied");

    }
关于我应该如何前进有什么想法吗


运行区段报告V4

只需遵循此链接即可。我希望它能解决你的问题

您必须创建3个类

BaseFixture.cs
ExtentManager.cs
ExtentTestManager.cs
之后,您可以在每个测试类中初始化BaseFixture

[TestFixture, Parallelizable(ParallelScope.Fixtures)]
    public class MemberLogInOut : BaseFixture

OneTimeSetUp是否每次新套件开始运行时都会运行?那你就有这个问题了是的。那么应该是怎样的呢?我需要更多关于如何设置套件的信息?您是如何触发testrun-testngrunner?或main方法的。?在整个执行过程中,数据块报告对象创建只应发生一次。看看你是否能想出一个逻辑,只设置一次,然后将报告传递给其他组员。谢谢!我将尝试链接中描述的设置。但是,我在htlm.Configuration()方法的ExtentManager类中发现一个错误。这个方法是从哪里来的?嗨,卢卡斯。对不起,我不明白你说的话。无论如何,是否可以在此处共享您的代码?。我试试看。您使用的是哪个ExtentReports版本?现在可以使用了。。由于公司原因,我无法真正共享除数据块报告中提供的代码之外的代码。谢谢你的帮助!美好的干得好