«рефакторинг их, чтобы сделать их более сухими - цель каждого теста больше не была ясна»
Похоже, у вас были проблемы с рефакторингом. Я просто догадываюсь, но если это окажется менее ясным, не значит ли это, что у вас еще есть над чем поработать, чтобы у вас были достаточно элегантные тесты, которые были бы совершенно ясными?
Именно поэтому тесты являются подклассом UnitTest - поэтому вы можете создавать хорошие тестовые наборы, которые будут правильными, легко проверяемыми и понятными.
В старину у нас были инструменты тестирования, в которых использовались разные языки программирования. Было трудно (или невозможно) создавать приятные, простые в работе тесты.
У вас есть все возможности - независимо от того, какой язык вы используете - Python, Java, C # - так что используйте этот язык хорошо. Вы можете получить красивый тестовый код, понятный и не слишком избыточный. Там нет компромисса.