Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

С#+WebDriver+NUnit 3 интеграция с Allure 2 Framework

csharp
nunit
infrastructure
allure
webdriver
Теги: #<Tag:0x00007f7b61a24bb0> #<Tag:0x00007f7b61a24a70> #<Tag:0x00007f7b61a24930> #<Tag:0x00007f7b61a247f0> #<Tag:0x00007f7b61a246b0>

(Lelik) #21

Жаль, что не сразу результат.
У меня еще вопрос по поводу степов внутри теста. Есть ли такой атрибут и чем его можно заменить если нет. Мне нужны детали в репорте, которые помогут мануал тестеру понять в каком месте проблема.


(Ihor Kokhan) #22

Запускаю через NUnit Console Runner все равно allure-results не появляется.


(Alexandr D ) #23

Как запускаете?
nunit3-console *.dll?


(Alexandr D ) #24

Смотря какие детали.
Из того что вы написали вообще непонятно что вы хотите.

Опять же, не реклама конечно же :smiley:, но я в своей версии аллюра добавил метод, который загружает отформатированные xml/json.
А так - вы можете загрузить любое вложение туда, хоть видео.
В классическом аллюре метод есть соответствующий - AddAttachment()
Выглядит это всё как-то так:

Скрин


(Ihor Kokhan) #25

–where=“class = Automation.Tests.AcceptanceTestSuite”
–where=“test =~ /RoleDeletionTest/”
Эти 2 варианта работают, а вот
– where= “cat = Acceptance” падает с ошибкой
Error : Automation.Tests.AcceptanceTestSuite.RoleDeletionTest
System.ArgumentOutOfRangeException : Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index


(Alexandr D ) #26

Потому что у вас пробел перед where.


(Lelik) #27

Мне нужны шаги внутри тестов, потому что в случае длинных функциональных тестов в отчете хочется видеть что были такие шаги и тест упал на определенном шаге.


(Alexandr D ) #28

Ну так вызывайте методы там, где это надо.
AllureLifeCycle.Instance.StartStep(...)
AllureLifeCycle.Instance.UpdateStep(...)
AllureLifeCycle.Instance.StopStep(...)


(Nick) #29

В смысле нигде?
VS благополучно все складывает в TEMP.

На всякий - есть такая штука как AllureLifecycle.Instance.ResultsDirectory :wink:


(Alexandr D ) #30

Да, соррян, спутал с NUnit’ом, который не генерит xml’ку.

Сама VS если не ошибаюсь складывает куда-то в себя, что-то типа

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\

(Lelik) #31

А есть какая-нибудь тестововая сборка тестов, как пример. Что бы можно было посмотреть как использовать эти методы.
У меня на это шаге System.InvalidOperationException: Sequence contains no matching element
AllureLifecycle.Instance.StartStep(“test”, “test”);


(Lelik) #32

В temp не складывает, возможно потому что как оказалось никуда не складывает.
Попробовала
AllureLifecycle.CreateInstance(“D:\ManufacturingCSGit\Path1\PAth2\TestResults\Tests\”);
AllureLifecycle.Instance.ResultsDirectory.Equals("D:\Path1\PAth2\Test2\
В итоге Tests создался, а Test2 нет

allure-results папка тоже создана по пути project\bin\Debug\allure-result тоже пустая после запуска теста.
PS. Хотя нет. AllureLifecycle.Instance.AddAttachment создался AsByteArray и это прорыв.
Но мне нужен, я так понимаю, xml, html отчет. Как его получить?
тест метод у меня иммеет все возможные allur атрибуты.


(Alexandr D ) #33

Складывает по пути AllureLifecycle.Instance.ResultsDirectory.

Смотря чью сборку аллюра вы используете.

Ну а в моём случае так:

public static void MakeScreenshot(string screenshotName = "Скриншот")
        {
            var uuid = $"{Guid.NewGuid():N}";

            AllureLifecycle.Instance.StartStep("Скриншот в конце теста", uuid);
            AllureLifecycle.Instance.AddAttachment($"{screenshotName} [{DateTime.Now:HH:mm:ss}]",
                "image/png",
                Driver.TakeScreenshot().AsByteArray);
            AllureLifecycle.Instance.UpdateStep(uuid, _ => _.status = Status.failed);
            AllureLifecycle.Instance.StopStep(uuid);
        }

(Lelik) #34

AllureLifecycle.Instance.ResultsDirectory.Equals("D:\Path1\PAth2\Test2
Но папка Test2 не создалась . Не понимаю почему.


(Alexandr D ) #35

Она у вас и не должна была создаться.
Метод Equals сравнивает, а не создаёт.


(Lelik) #36

Точно :slight_smile:


(Lelik) #37

решила добаитсья работы тестового примера, а потом переносить в свой проект.
Так вот. Не понятно в чем проблема. И в папке allure-result все так же пусто.

 [Test]
        [AllureTag("TC-1")]
        [AllureSeverity(SeverityLevel.critical)]
        [AllureIssue("ISSUE-1")]
        [AllureSuite("RetrySuite")]
        [AllureSubSuite("Range")]
        [AllureOwner("unickq")]
        [AllureParentSuite("With parameters")]
        public void RangeTest([Range(0.2, 0.6, 0.2)] double d)
        {
            Assert.Pass(d.ToString(CultureInfo.InvariantCulture));
        }

        private int _retryInt;

(Lelik) #38
Ну а в моём случае так:

public static void MakeScreenshot(string screenshotName = "Скриншот")

(Alexandr D ) #39

Я ж говорю, в моём случае. Это я имел в виду сборку аллюра CSharp Allure classic NUnit with improvements

По ошибкам в чужих сборках я подсказать не могу. Но недавно человек столкнулся с проблемами похожими, и оказалось что у него было установлено два разных аллюра.

Но по вашей ошибке, это к @unickq


(Lelik) #40

у меня установлены компоненты вашей сборки https://www.screencast.com/t/yyo7Y5TH

Но даже повторяя тестовый пример ничего не получается. https://www.screencast.com/t/MfYHXF0b0UeP