Если вы ищете способ переключаться между разными классами один за другим, а не все вместе, я быстро написал небольшой скрипт, который вы можете использовать:
https://github.com /ThibaultJanBeyer/.toggleClasses-for-jQuery
он расширяет новый метод jQuery .toggleClasses (), который делает именно то, что вы хотите. проверьте это и не стесняйтесь делать это лучше, если у вас есть улучшения :)
Вы можете попробовать установить AppDomain.CurrentDomain.UnhandledException
и посмотреть, работает ли это? Я не знаю, как это взаимодействует с мыслью о тестовой оснастке VS
Обычно я стараюсь избегать запуска потоков в модульных тестах, внедряя поставщика потока, который во время модульных тестов фактически не предоставляет поток, а скорее выполняется синхронно.
Конечно, при таком подходе вы не можете протестировать какие-либо потенциальные конфликты или два реальных пути кода, работающих параллельно, но есть хороший аргумент, что такой тест на самом деле не является модульным тестом.
Когда вы это делаете проверьте два одновременных потока, затем вам понадобится поставщик потока, который перехватывает исключения в конце потока и сообщает о них как об ошибках.
Вы можете использовать обработчик Global Exception, чтобы перехватить все неперехваченные исключения в AppDomain:
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new EventHandler(UnhandledExceptionHandler);
Я думаю, что это будет работать и для исключений, генерируемых другими потоками
Пара идей:
Что я могу сказать из области C ++ (если знания могут быть переведены), так это то, что любое исключение, созданное в данном потоке, может быть поймано только в этом потоке . Если ваше основное приложение запускает три других потока, вы должны перехватывать исключения из каждого из (теперь 4) потоков независимо. Невозможно реализовать «глобальный» обработчик исключений в многопоточном коде. Это связано с тем, как потоки (и процессы) реализуются в ОС.
Но, как я уже сказал, я не знаю, насколько точно эта логика транслируется на C #, потому что она выполняется поверх виртуальной машины, такой как Java.
1112319]
Мне кажется, что наличие более одного потока в ваших тестах не очень похоже на единицу y . Есть ли что-нибудь в тестируемой логике, которая требует наличия нескольких потоков? Правда?
Или дело в том, что некоторые участники тестируемого кода оказываются многопоточными (например, сокет)? Если это так, вам действительно следует заменить этих соавторов какими-то тестовыми двойниками (моки, заглушки или что-то еще).