Задержка / пауза между выполнением теста в MSTest - PullRequest
0 голосов
/ 17 мая 2018

У меня есть решение с несколькими проектами (библиотеки классов C #), и в настоящее время я тестирую эту функциональность, используя контрольные примеры в MSTest.После добавления большего количества тестовых примеров я смог наблюдать, как некоторые тестовые наборы часто дают сбой при выполнении в пакетном режиме с другими тестовыми примерами.При выполнении только этих тестовых случаев они всегда будут успешными.

Поскольку я использую сетевые интерфейсы и системные ресурсы в коде, я думаю, что наблюдение как-то связано с ними (даже я освобождаю каждый ресурс / порт / соединение в конце каждого случая кодом).

Чтобы преодолеть эти проблемы, я думал о задержке / паузе между различными выполнениями тестового примера.Поскольку у меня примерно 200 тестовых случаев, я бы не хотел добавлять код для каждого случая.Есть ли возможность указать системе MSTest добавить такую ​​задержку / паузу?

Пример

Проект MSTest содержит тестовые случаи

  • T1
  • T2
  • T3
  • ...
  • T200

Выполнение всех тестовых случаев приведет к

  • Успех T1
  • Успех T2
  • ...
  • Ошибка Tn (Timeout / OutOfMemory / NullReference / UnknownError ...)
  • ...
  • Успех T200

, когда Tn не одинаков во время всех выполнений (некоторые Tn часто терпят неудачу, в то время как другие до сих пор никогда не терпели неудачу, но реальногоСоединение, кроме сбоя Tn, проверяется в конце пакета)

Фактическая ошибка в тестовых примерах также не является детерминированной - она ​​варьируется от тайм-аутов и нулевых ссылок в случайных позициях до Исключений памяти или Неизвестных ошибок.

Выполнение тестов один за другим приведет к

  • Успех T1
  • Успех T2
  • ...
  • T200 success

1 Ответ

0 голосов
/ 31 мая 2018

Если вы хотите, чтобы что-то происходило до и / или после каждого теста, вы можете использовать:

[TestInitialize()]
public void Startup()
{
   // code here
}

[TestCleanup()]
public void Cleanup()
{
   // code here
}

Однако не рекомендуется зависать от сна, чтобы пройти тесты - я бы действительно постарался выяснить, в чем причина исключений.

...