Не удалось сгенерировать ExtentReport для .NetCore App 2.1? - PullRequest
0 голосов
/ 17 декабря 2018

Я работаю над проектом .NetCore App 2.1 и создал несколько сценариев селена в C # для этого проекта с помощью инфраструктуры NUnit (в MacOS).Я могу выполнить это успешно.Однако я не могу сгенерировать отчет с использованием Extent Report 3.1.3 (также, Tried 2.41.x), так как получаю предупреждение, что он был восстановлен с помощью .NETFramework 4.6.1, но не с приложением .NetCore с Project Target.рамки, пока компилин.Когда я это исполняю, это бросало мне много исключений.Я решил один за другим, добавив пакеты Nuget.Наконец, я нахожусь в следующем исключении, из которого я не могу двигаться дальше.

TearDown failed for test fixture RBAutomationDemo.UnitTest1
TearDown : System.TypeLoadException : Could not load type 'System.Security.Principal.WindowsImpersonationContext' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
--TearDown
 at RazorEngine.Compilation.DirectCompilerServiceBase.CompileType_Windows(TypeContext context)
at RazorEngine.Templating.RazorEngineCore.CreateTemplateType(ITemplateSource 
razorTemplate, Type modelType)
  at RazorEngine.Templating.RazorEngineCore.Compile(ITemplateKey key, Type modelType)
  at RazorEngine.Templating.RazorEngineService.CompileAndCacheInternal(ITemplateKey key, Type modelType)
  at RazorEngine.Templating.RazorEngineService.GetCompiledTemplate(ITemplateKey key, Type modelType, Boolean compileOnCacheMiss)
  at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
  at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
  at AventStack.ExtentReports.Reporter.ExtentHtmlReporter.Flush()
  at AventStack.ExtentReports.Model.Report.<>c.<NotifyReporters>b__29_1(IExtentReporter x)
  at System.Collections.Generic.List`1.ForEach(Action`1 action)
  at AventStack.ExtentReports.Model.Report.NotifyReporters()
  at AventStack.ExtentReports.Model.Report.Flush()
  at AventStack.ExtentReports.ExtentReports.Flush()
  at RBAutomationDemo.UnitTest1.OneTimeTearDown()`

Пожалуйста, помогите мне в этом.

  1. Возможно ли использовать отчеты об объемах в .NetCore 2.1 (в MacOS)?если так, пожалуйста, предоставьте мне шаги для достижения этого.
  2. Если отчеты по экстентам несовместимы с приложением 2.1 .NetCore, пожалуйста, предложите лучший инструмент отчетности в качестве альтернативы (предпочтительно с открытым исходным кодом)
  3. Я собираюсь напечатать его в VSTS.Будут ли действительно необходимы отчеты для этого сценария отдельно?

Код, который я использовал:

using System;
using AventStack.ExtentReports;
using AventStack.ExtentReports.Reporter;
using LocatorsFile;
using NUnit.Framework;
using NUnit.Framework.Interfaces;

namespace RBAutomationDemo
{
    [SetUpFixture]
    public abstract class Base
    {
    protected ExtentReports _extent;
    protected new ExtentTest _test;

    [OneTimeSetUp]
    protected void ReportSetup()
    {
        var dir = TestContext.CurrentContext.TestDirectory + "\\";
        var fileName = this.GetType().ToString() + ".html";
        System.Console.WriteLine(fileName);
        ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(dir + fileName);

        _extent = new ExtentReports();
        _extent.AttachReporter(htmlReporter);
    }

    [OneTimeTearDown]
    protected void ReportTearDown()
    {
        _extent.Flush();
    }



    [SetUp]
    public void BeforeTest()
    {
        _test = _extent.CreateTest(TestContext.CurrentContext.Test.Name);
        Initialize();
    }

    [Test]
    public void Testmethod1()
    {
        _test = extent.CreateTest("Checking Total workbooks count");

        try
        {
            _test.Pass("Assertion passed");
            _test.Log(Status.Pass, "Pass");
        }
        catch
        {
            _test.Fail("Assertion failed");
            _test.Log(Status.Fail, "Fail");
            throw;
        }

    }


    [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();
        DoTearDown();
    }
}
}

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

С сайта github для ExtentReports: «Текущая версия: 3.1.0, только .NET Framework 4.5+.»

Поскольку .NET 4.5 - только Windows, версия C # будетработает только на Windows.Вам нужно будет сгенерировать отчеты о тестировании в Windows.

Редактировать: ответ @ foursyth следует считать авторитетным, поскольку он работает в Extent Framework.

0 голосов
/ 22 апреля 2019

Для тех, кто ищет рабочую версию ExtentReports для .NET Core, ознакомьтесь с этой fork поверх текущей версии 4.03, которая поддерживает не только .NET Core, но даже.NET Statndard:

https://www.nuget.org/packages/ExtentReports.Core

Проверено только в системе Windows, но также должно работать и в Mac OS.

0 голосов
/ 17 декабря 2018

Пожалуйста, смотрите ниже:

  1. Невозможно использовать ExtentReports с .Net Core / Standard
  2. Нет, это не совместимо, и следующая версия 4 также не является (это построено с .NET Framework 4.5).Если вы хотите добавить поддержку .NET Core / Standard, я бы посоветовал отправить запрос по запросу (источники версии 4 будут доступны на этой неделе).Примечание: запросы на получение ответа больше не будут приниматься для версии 3, поскольку она больше не поддерживается
  3. Это субъективно, это зависит от настроек вашей команды / компании.Должны быть другие инструменты отчетности, поддерживающие эту потребность

РЕДАКТИРОВАТЬ:

Теперь доступны источники версии 4, см. здесь

Согласновладелец проекта (@anshooarora): «Я рад добавить поддержку для ядра .NET, но я все еще немного скептически отношусь к тому, насколько хорошо поддерживаются необходимые пакеты. Я также был вне связи, поэтому мне, вероятно, понадобится некоторая помощь, чтобы свернутьэто из. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...