Как добавить событие, которое запускается после завершения вашего последнего модульного теста? - PullRequest
0 голосов
/ 14 декабря 2011

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

Другими словами:

  • UnitTest1и UnitTest2 наследуют UnitTestBaseCreateData (и наоборот, они могут вызывать статический метод в конструкторе UnitTest1 и UnitTest2, который создает тестовые данные)
  • UnitTest3 и UnitTest4 не требуют создания данных.
  • Если я выберу и выполню UnitTests 1, 2, 3 и 4, данные теста будут созданы по требованию для теста 1 и автоматически очищены после завершения теста 4
  • Если я выберуи запустите UnitTests 3 и 4, тестовые данные не будут созданы, и код очистки не будет запущен.
  • Если выбрать и запустить только модульный тест 1, тестовые данные будут созданы по требованию, а затемочищается после завершения теста 4.

Я просто не знаю, есть ли некоторые [TestRunCleanup ()] (аналогичные атрибутам TestCleanup и ClassCleanup) для методаДоступен атрибут d, который я могу использовать как ловушку, чтобы проверить, есть ли у меня тестовые данные, которые нужно очистить ...

1 Ответ

2 голосов
/ 16 декабря 2011

Вы можете использовать AssemblyCleanupAttribute .Когда метод украшен атрибутом, MS Test выполнит метод, когда ВСЕ тесты (этой сборки) в текущем тестовом прогоне будут завершены.

    [AssemblyCleanup]
    public static void AssemblyCleanup()
    {
        //Remove data here when necessary
    }
...