Что приводит к зависанию vstest после успешного выполнения всех тестовC#

Место общения программистов C#
Ответить
Anonymous
 Что приводит к зависанию vstest после успешного выполнения всех тестов

Сообщение Anonymous »

Мы используем среду тестирования Visual Studio и C# для написания модульных тестов, и недавно мы столкнулись с проблемой, из-за которой vstest.console.exe иногда зависает после выполнения всех тестов. Все тесты проходят успешно, но vstest.console.exe просто сидит и ждет чего-то, вместо того чтобы завершить работу.
Вероятно, это связано с недавними изменениями, когда мы начали использовать стороннюю библиотеку. При запуске тестов в режиме отладки мы видим, что несколько потоков, созданных этой библиотекой, все еще зависают после того, как все тесты уже пройдены.
Чтобы лучше понять проблему, я попытался воспроизвести проблему, как показано в тестовом коде ниже. Однако похоже, что vstest.console.exe вполне готов завершить работу после завершения такого теста. Кажется, его не заботят никакие «дикие» потоки, которые все еще работают. Итак, мой вопрос: что заставляет vstest ждать или не ждать потоков после выполнения всех тестов? Другими словами, как мне изменить приведенный ниже тест, чтобы vstest зависал после его завершения?

Код: Выделить всё

[TestMethod]
public void FreezeVSTest()
{
var thread = new Thread(
new ThreadStart(
delegate
{
while (true)
{
Thread.Sleep(1);
}
}));
thread.Start();
}
(Обратите внимание, что я не спрашиваю, как заставить тест зависать, я знаю, что добавление thread.Join() позволит добиться этого. Вопрос в том, что vstest зависает после прохождения теста.)

Подробнее здесь: https://stackoverflow.com/questions/652 ... ccessfully
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»