Итак, у меня есть тестовый фреймворк, который восстанавливает две базы данных, есть оба метода TestInitialisation
и TestCleanup
.
Когда он работал в режиме Parallel.ForEach
, я получал сообщение Потеря ошибки при прерываниии никаких других ошибок, поэтому я предположил, что что-то с SQL Server выдавало ошибку, и вместо этого выполнял восстановление одно за другим.
Первое восстановление работает нормально, второе, в то время как в середине создания строки подключения находитсятеперь получение потока было ошибкой прерывания, но я посмотрел дальше, и в середине TestCleanup
работает другой поток, поэтому MSTest закрывает мой тест раньше, прерывая основной поток и вызывая очистку без генерируемой ошибки.
Что может быть причиной этого, если основной тестовый поток занимается чем-то другим?Если я позволю ему запустить ошибку, я получаю следующее сообщение:
Поток был прерван
Редактировать: кажется, что это связано с атрибутом TestTimeout, но вместо того, чтобы сообщатьмне истекло время ожидания, он просто прерывает все потоки и заставляет основной поток вместо этого выдавать ошибку?