У меня есть код, который забывает установить флаг демона в потоке. Таким образом, методы main
никогда не заканчиваются. В конце концов, я отслежу его, но мне интересно: есть ли способ отразить факт существования не-демона, чтобы тест JUnit (или testng или любой другой) мог жаловаться в этом случае? Обратите внимание, что эти тестовые среды организуют System.exit
, чтобы лишние потоки не отображались как зависания.Могу ли я обнаружить просочившийся поток в тесте Junit?
3
A
ответ
2
Вы можете получить список всех запущенных потоков (Get a List of all Threads currently running in Java):
Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
Затем вы можете перемещаться по списку в каком-то тесте, который вы пишете вызывающие Thread.isDaemon()
. Вам, вероятно, придется выкинуть некоторые потоки, соответствующие JVM или JUnit framework, но это, вероятно, возможно, проверяя другие аспекты потоков, например их имя.
Смежные вопросы
- 1. В моем тесте JUnit, как я могу проверить Spring RedirectView?
- 2. Как я могу имитировать нажатия клавиш в тесте junit?
- 3. assertequals в тесте JUnit
- 4. Обложка findbugs в тесте Junit
- 5. OutOfMemoryError в тесте с JUnit
- 6. Могу ли я бросить поток?
- 7. «Метод $ неопределен» в тесте JUnit
- 8. Могу ли я сделать JUnit более подробным?
- 9. Можете ли вы открыть новую активность в тесте junit?
- 10. Могу ли я обнаружить действительный возврат JSONP?
- 11. Захват ввода клавиатуры в тесте JUnit
- 12. Извлечь значение контекста в тесте Junit.
- 13. Получение списка JAR в тесте JUnit
- 14. Переменная метода доступа в тесте jUnit
- 15. Как определить, был ли поток создан с помощью JUnit?
- 16. Не удается найти символ в тесте JUnit
- 17. @Transactional не откатывается в тесте JUnit
- 18. Неправильно ли использовать все исключения в тесте JUnit?
- 19. Есть ли способ использовать JMS в тесте JUnit?
- 20. SequenceGenerator не работает в тесте JUnit?
- 21. Управление событиями Swing в тесте JUnit
- 22. Используйте константы или поля в тесте JUnit
- 23. Как проверить список в тесте JUnit?
- 24. (iOS + StoreKit) Могу ли я обнаружить, когда я в песочнице?
- 25. Автоматическое создание экземпляра в тесте Spring JUnit
- 26. Как работать с jsch.addIdentity() в тесте Junit?
- 27. Могу ли я управлять диалогами SignalR 'в тесте производительности JMeter?
- 28. Могу ли я «заставить» поток проснуться?
- 29. Могу ли я запустить поток из конструктора?
- 30. Могу ли я читать поток, создаваемый open_memstream()?
Как бы вы хотели, чтобы это сообщалось? Просто, что такой поток существует, или какой-то pin-point, на котором был создан поток? – Brick
Просто его существование. ThreadMXBean не показывает флаг daemon, если бы это было так, этого было бы достаточно. – bmargulies