Можно ли выполнить метод до и после всех тестов в сборке?

Я хотел бы создать проект nunit для автоматизации selenium ui. Я хочу войти на сайт перед запуском всех тестов (все они) и закрыть браузер после запуска всех тестов (все они).

Я не могу использовать SetUp, поскольку он связан с приборами, и я хочу сделать это до и после всего.

Знаете ли вы, кто его выполнил?


Я знаком с атрибутом SetUp и TearDown. Позвольте мне объяснить это снова.

Мне нужна какая-то логика, которая должна быть выполнена до того, как все тесты начнутся с всех приборов (AKA - первый тест во всей сборке), а также некоторую логику, которая будет выполнена после завершения всех тестов из всех светильников (AKA - последний тест во всей сборке).

Ответ 1

Если все ваши тестовые приборы находятся в одном пространстве имен, вы можете использовать атрибут [SetUpFixture], чтобы пометить класс как глобальную настройку и срыв. Затем вы можете разместить все свои функции входа/выхода.

NUNIT 2.x

namespace MyNamespace.Tests
{
    using System;
    using NUnit.Framework;

    [SetUpFixture]
    public class TestsSetupClass
    {
        [SetUp]
        GlobalSetup()
        {
            // Do login here.
        }

        [TearDown]
        GlobalTeardown()
        {
            // Do logout here
        }
    }
}

См: http://www.nunit.org/index.php?p=setupFixture&r=2.4

NUNIT 3.x

namespace MyNamespace.Tests
{
    using System;
    using NUnit.Framework;

    [SetUpFixture]
    public class TestsSetupClass
    {
        [OneTimeSetUp]
        GlobalSetup()
        {
            // Do login here.
        }

        [OneTimeTearDown]
        GlobalTeardown()
        {
            // Do logout here
        }
    }
}

См: https://github.com/nunit/docs/wiki/SetUpFixture-Attribute

Ответ 2

Конечно. Для чего нужны атрибуты [TestSetUp] и [TearDown]. Не путайте их с [TestFixtureSetUp] и [TestFixtureTearDown], которые выполняются перед первым тестом и после последнего.

Ответ 3

Перед выполнением каждого тестового примера выполняется [SetUp]

после завершения выполнения каждого тестового примера будет выполнен [TearDown].

если мы хотим инициализировать переменные, мы часто пишем в разделе [SetUp], как конструктор

если мы хотим избавиться от любого объекта, который мы часто пишем в разделе [TearDown]

    [SetUp]
    protected void SetUp()
    {
             //initialize objects
    }

    [TearDown]
    public void TearDown()
    {
       //dispose objects
    }

Ответ 4

Ближайшей вещью в nunit является атрибут SetupFixture, который позволяет пометить класс для установки/разрыва для всех тестовые приборы в пространстве имен;

Метод SetUp в SetUpFixture выполняется один раз перед любым из приборов, содержащихся в его пространстве имен. Метод TearDown выполняется один раз после завершения завершенного исполнения.