У меня есть решение с несколькими проектами (библиотеки классов C #), и в настоящее время я тестирую эту функциональность, используя контрольные примеры в MSTest.После добавления большего количества тестовых примеров я смог наблюдать, как некоторые тестовые наборы часто дают сбой при выполнении в пакетном режиме с другими тестовыми примерами.При выполнении только этих тестовых случаев они всегда будут успешными.
Поскольку я использую сетевые интерфейсы и системные ресурсы в коде, я думаю, что наблюдение как-то связано с ними (даже я освобождаю каждый ресурс / порт / соединение в конце каждого случая кодом).
Чтобы преодолеть эти проблемы, я думал о задержке / паузе между различными выполнениями тестового примера.Поскольку у меня примерно 200 тестовых случаев, я бы не хотел добавлять код для каждого случая.Есть ли возможность указать системе MSTest добавить такую задержку / паузу?
Пример
Проект MSTest содержит тестовые случаи
Выполнение всех тестовых случаев приведет к
- Успех T1
- Успех T2
- ...
- Ошибка Tn (Timeout / OutOfMemory / NullReference / UnknownError ...)
- ...
- Успех T200
, когда Tn не одинаков во время всех выполнений (некоторые Tn часто терпят неудачу, в то время как другие до сих пор никогда не терпели неудачу, но реальногоСоединение, кроме сбоя Tn, проверяется в конце пакета)
Фактическая ошибка в тестовых примерах также не является детерминированной - она варьируется от тайм-аутов и нулевых ссылок в случайных позициях до Исключений памяти или Неизвестных ошибок.
Выполнение тестов один за другим приведет к
- Успех T1
- Успех T2
- ...
- T200 success