Тестовое покрытие Jython - PullRequest
3 голосов
/ 11 октября 2010

Я пытаюсь использовать Jython вместо Python для проекта (нужен драйвер jdbc для редкой базы данных). Пока все работает нормально, но я не могу найти хороших инструментов для покрытия кода. У кого-нибудь есть решение этой проблемы?

Похоже, что поиск, который я провел, указывает на то, что в jython отсутствуют некоторые вещи, которые нужны инструментам покрытия кода. http://nedbatchelder.com/blog/201005/coveragepy_on_jython.html

Как другие решают это? Я предполагаю, что что-то вроде jpype вместе с обычным python будет шагом вперед, но я бы не стал вводить jpype в мою среду только для измерений покрытия.

Ответы [ 2 ]

1 голос
/ 12 октября 2010

В сообщении блога, на которое вы ссылаетесь, упоминается, что вы можете запустить "покрытие запуска" в Jython, затем "покрытие HTML" в CPython. Ты пробовал это? Это должно дать разумные результаты.

1 голос
/ 11 октября 2010

Как другие решают эту проблему?

По сути, ваш вопрос: "Как я могу получить инструменты для языков, которые не имеют встроенной поддержки инструментов?" Сверхсовременное решение для программирования языков - попытка встроить всю необходимую поддержку в конкретные реализации языков (рефлексия, профилирование, метапрограммирование, ...). Хотя это хорошая идея, количество инженерных разработок, необходимых для этого, огромно, и .... этого часто не происходит (посмотрите на вашу проблему с Jython).

Еще один способ решения проблемы - выйти за пределы языка (или его реализации) и получить поддержку создания инструментов meta от механизмов, предназначенных для реализации инструментов на самых разных языках. Это также требует разработки, но это может быть сделано довольно общим способом, так что метаинструмент широко используется. Такие метаинструменты могут затем использоваться для реализации инструментов, которых у вас нет.

Наш инструментарий реинжиниринга программного обеспечения DMS - это такой мета-инструмент, обеспечивающий анализ, анализ и преобразование программ, параметризованный с помощью явных определений языка. DMS поддерживает многие языки (C, C ++, C #, COBOL, Java, PHP, ...), включая Python, и поддерживает диалекты , что позволяет обрабатывать вариации на «стандартном» языке (I) подозреваю, что Jython не совсем Python).

По этой ссылке вы можете найти технический документ по , как метаинструмент, такой как DMS, может использоваться для реализации тестового покрытия для произвольных языков . Эта идея была использована для реализации семейства инструментов тестирования покрытия, доступных в моей компании. (Мы, вероятно, сделаем это для Python в будущем).

...