Можно ли выполнить метод до и после всех тестов в сборке?
Я хотел бы создать проект 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 выполняется один раз после завершения завершенного исполнения.