Вопрос

В пространстве имен UnitTesting от Microsoft ( Microsoft.VisualStudio.TestTools.UnitTesting ) есть атрибуты AssemblyInitialize и AssemblyCleanup , которые можно применять к статическим методам и они будут вызваны до и после всех тестов соответственно.

[AssemblyInitialize]
static public void AssemblyInitialize(TestContext testCtx)
{
    // allocate resources
}

[AssemblyCleanup]
static public void AssemblyCleanup()
{
    // free resources
}

Мой вопрос: возможно ли и безопасно получить доступ к TestContext в AssemblyCleanup () ? Если нет, то является ли хранение ссылок на ресурсы в качестве статических элементов разумной альтернативой или это также может вызвать проблемы?

Дополнительно / опционально: что является причиной не передачи ссылки на TestContext в методы очистки?

Это было полезно?

Решение

Я обращаюсь к статическому свойству в том же классе, и оно, кажется, работает нормально. Я обновлю этот ответ, если у меня возникнут проблемы. Я не , однако, получаю доступ к TestContext , поэтому мне любопытно, будет ли это работать тоже.

Другие советы

Вы не можете передавать какие-либо параметры в метод AssemblyCleanup. Вот ошибка, если вы попытаетесь это сделать:

  

Результат сообщения: метод   SomeNamespace.TestDatabaseInitializer.AssemblyCleanup содержит ошибку   подпись. Метод должен быть статическим, общедоступным, не возвращает значение   и не должен принимать никаких параметров.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top