Как другие решают эту проблему?
Ваш вопрос в основном: «Как я могу получить инструменты для языков, на которых нет встроенной поддержки инструмента?» Гипермодернистское решение для программирования langauges состоит в том, чтобы попытаться построить всю необходимую поддержку в конкретных реализациях langauge (отражение, профилирование, метапрограммирование, ...). В то время как его хорошая идея, объем инженерных средств, необходимых для этого, огромен, и ... часто этого не происходит (свидетельствуйте о своей проблеме с Jython).
Еще один способ решить проблему - выйти за пределы языка (или его реализации) и получить meta поддержка инструментальных средств для двигателей, которые предназначены для реализации инструментов на самых разных языках. Для этого также требуется инженерная техника, но это можно сделать довольно обычным образом, чтобы мета-инструмент широко использовался. Такие мета-инструменты затем могут использоваться для реализации инструментов, которых у вас нет.
Наш DMS Software Reengineering Toolkit - это мета-инструмент, обеспечивающий анализ, анализ и преобразование программ, параметризованный явными определениями langauge. DMS поддерживает множество языков (C, C++, C#, COBOL, Java, PHP, ...), включая Python, и поддерживает диалекты, позволяя обрабатывать варианты «стандартного» langauge (я подозреваю, что Jython не точно Python).
По этой ссылке вы можете найти технический документ на how a meta-tool like DMS can be used to implement test coverage for arbitrary langauges. Эта идея была использована для внедрения семейства инструментов для тестирования, доступных в моей компании. (Мы, вероятно, сделаем это для Python в какой-то момент в будущем).
Я попробовал, хотя я бы предпочел не приводить больше зависимостей, чем необходимо в мой проект. К сожалению, у меня были проблемы с установкой и застряли. Вот тогда я начал просить альтернативы. :) –
Если вы хотите помочь, оставьте мне строку. coverage.py и CPython - это только две зависимости, любой другой инструмент будет как минимум одним! :) –
Я принимаю этот ответ, хотя бы потому, что он заставил меня исправить мою проблему с окружающей средой и убедиться, что service.py действительно установлен, чтобы я мог ее протестировать. :) –