Я ищу ближайший эквивалент использования атрибута MbUnit [AssemblyFixture] в NUnit. Я хочу, чтобы мои модульные тесты запускали некоторую настройку только один раз (всего) перед всеми устройствами пространства имен и запускать некоторую очистку один раз (всего) после всех приборов пространства имен. Спасибо.Ищете эквивалент NUnit для MbUnit [AssemblyFixture]
ответ
Ближайшая вещь, о которой я знаю в NUnit, - [SetUpFixture]
. NUnit documentation на [SetUpFixture]
объясняет:
Это атрибут, который знаменует собой класс, содержащий одноразовый установки или Teardown методы для всех испытательных приборов при заданном пространства имен. Класс может содержать не более одного метода, отмеченного атрибутом SetUpAttute , и один метод, отмеченный атрибутом TearDownAttribute.
Кроме того, в нем говорится:
только один SetUpFixture должен быть создан в заданном пространстве имен. A SetUpFixture вне любого пространства имен предоставляет SetUp и TearDown для всю сборку.
Относительно [SetUp]
и [TearDown]
методов внутри [SetUpFixture]
:
Метод SetUp в SetUpFixture выполняется один раз, прежде чем любой из светильников, содержащихся в пространстве имен. Метод TearDown выполняется после завершения всех завершенных работ.
Это пример из NUnit 2.6.3 documentation (хотя она была добавлена в версии 2.4):
namespace NUnit.Tests
{
using System;
using NUnit.Framework;
[SetUpFixture]
public class MySetUpClass
{
[SetUp]
RunBeforeAnyTests()
{
// ...
}
[TearDown]
RunAfterAnyTests()
{
// ...
}
}
}
Спасибо, но вы не думаете, установка и демонтаж будете побежали во много раз? (Один раз за светильник)? С помощью [AssemblyFixture] настройка и отключение запускаются один раз в пространстве имен. – evg02gsa3
'[SetUp]' и '[TearDown]' будут запускаться один раз в пространстве имен. Я обновлю свой ответ, чтобы это отразить. –