Существуют ли нестатические эквиваленты для MSTest [ClassCleanup] и [ClassInitialize]?

Существуют ли нестатические эквиваленты для MSTest [ClassCleanup] и [ClassInitialize]?

Я использую MSTest для некоторых тестов уровня системы/интеграции, и я не хочу беспокоиться об очистке и инициализации соединения в тестах.

Пример кода:

[TestClass]
public class DefectCreatorTest
{
    private long _cookie;
    private soapcgi _soap;

    [ClassInitialize]
    public void Initialize()
    {
        _soap = new soapcgi {Url = "http://localhost:80/scripts/soapcgi.exe"};
        _cookie = Transaction.Login(_soap);
    }

    [ClassCleanup]
    public void TearDown()
    {
        Transaction.Logout(_cookie, _soap);
    }

    [TestMethod]
    public void CreateDefectTest()
    {
        var result = _soap.Foo();
        Assert.AreEqual("bar", result);
    }
}

Ответ 1

Отвечая на ваш вопрос, насколько я знаю - Нет, в MSTest нет нестатического эквивалента.

Но:

  • глядя на ваш код, нет причин, по которым _cookie и _soap не должны быть статичными, а также Initialize и TearDown. Это позволит вам забыть о проблемах конфигурации во время тестовой записи...
  • Если вы готовы "прыгать на корабль", эквиваленты NUnit для [ClassCleanup] и [ClassInitialize] может применяться к статическим и экземплярам.