【问题标题】:AllureReport screenshot attachment for failed testsAllureReport 失败测试的截图附件
【发布时间】:2021-07-31 22:19:31
【问题描述】:

我正在使用 selenium c# + allurecore 进行 UI 自动化测试以生成报告。我在远程服务器上运行它们。

我当前在测试失败时截屏的设置是:

[TearDown]
public void CloseBrowser()
{
    if (TestContext.CurrentContext.Result.Outcome != ResultState.Success)
    {
        var screenshot = ((ITakesScreenshot)driver).GetScreenshot();
        var filename = TestContext.CurrentContext.Test.MethodName + "_screenshot_" + DateTime.Now.Ticks + ".png";
        var path = ScreenShotsFolder + filename;
        screenshot.SaveAsFile(path, ScreenshotImageFormat.Png);
        TestContext.AddTestAttachment(path);
    }
    driver.Close();
    driver.Quit();
}

我的屏幕截图已保存,我可以看到测试失败的步骤,但每当我生成 Allure 报告时,我都看不到附件。

也许有人可以帮助我将屏幕截图附加到报告中应该使用什么语法?

【问题讨论】:

    标签: c# selenium .net-core ui-automation allure


    【解决方案1】:

    只少了一行:

    AllureLifecycle.Instance.AddAttachment(filename, "image/png", path);
    

    我的 csproj 掘金是:

     <ItemGroup>
        <PackageReference Include="NUnit" Version="3.13.1" />
        <PackageReference Include="NUnit3TestAdapter" Version="3.16.1" />
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0"/>
        <PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
        <PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="90.0.4430.2400" />
        <PackageReference Include="NUnit.Allure" Version="1.0.14-beta2" />
      </ItemGroup>
    

    还有 Nunit 测试类:

    using System;
    using System.IO;
    using Allure.Commons;
    using NUnit.Allure.Attributes;
    using NUnit.Allure.Core;
    using NUnit.Framework;
    using NUnit.Framework.Interfaces;
    using OpenQA.Selenium;
    using OpenQA.Selenium.Chrome;
    
    namespace Selenium
    {
        [AllureNUnit]
        public class Tests
        {
            public IWebDriver driver;
    
        [SetUp]
        public void Setup()
        {
            driver = new ChromeDriver(".");
        }
    
        [Test(Description = "This test will be a success")]
        [AllureTag("Quick test")]
        [AllureSuite("Suite name")]
        public void PassedTest()
        {
            driver.Navigate().GoToUrl("https://stackoverflow.com");
        }
    
        [Test(Description = "This test will fail for the screenshot")]
        [AllureTag("Quick test")]
        [AllureSuite("Suite name")]
        public void FailedTest()
        {
            driver.Navigate().GoToUrl("https://stackoverflow.com");
            driver.FindElement(By.Id("doesnt_exist"));
        }
    
        [TearDown]
        public void CloseBrowser()
        {
    
            if (TestContext.CurrentContext.Result.Outcome != ResultState.Success)
            {
                var screenshot = ((ITakesScreenshot)driver).GetScreenshot();
                var filename = TestContext.CurrentContext.Test.MethodName + "_screenshot_" + DateTime.Now.Ticks + ".png";
                var path = "D:\\" + filename;
                screenshot.SaveAsFile(path, ScreenshotImageFormat.Png);
                TestContext.AddTestAttachment(path);
                AllureLifecycle.Instance.AddAttachment(filename, "image/png", path);
            }
            driver.Close();
            driver.Quit();
        }
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 2021-04-19
      相关资源
      最近更新 更多