Если ваш синглтон предназначен для инициализации только один раз, у вас может быть код, который проверяет повторную инициализацию и регистрирует текущий стек, когда обнаруживает это. Затем, если вы проверите стек, вы увидите, в каком тесте был запущен шарик, и вы можете проверить журналы JUnit, чтобы увидеть, какой тестовый прогон был прямо перед этим.
С точки зрения более полного решения этой проблемы, вместо того, чтобы обнаруживать ее, я бы порекомендовал вам иметь одноэлементный инициализатор, который запоминает то, что он инициализировал, и один метод разрыва, который разбирает все, что он инициализировал. Таким образом, тесты могут быть выполнены только для инициализации через этот класс, и в разборке нужно сделать только одну вещь.
Я также считаю, что предложение Карла Манастера является хорошим, но если бы вы использовали JUnit4, то у вас мог бы быть метод разрыва, который работает в суперклассе, не забывая вызывать super. Если вы не используете JUnit3 GUI, JUnit4 должен быть заменой. Единственное, что вам нужно, чтобы воспользоваться его новыми функциями, - это перенести весь тест, вы не можете жить в одном классе. Поэтому тесты, которые взаимодействуют с этими синглетонами, необходимо переносить по одному целому классу тестов за раз.