Универсальное модульное тестирование по комментариям
На dev.to разработчик из Камеруна опубликовал библиотеку, которая работает как CLI и позволяет производить модульное тестирование скриптовых языков программирования. Он назвал ее Testa и проверил на PHP, JavaScript, Python и Ruby.
Общим элементом, встречающимся в любом проекте, оказались комментарии, которые автор решил преобразовать в модульные тесты. Для этого он определил унифицированный синтаксис, присущий всем языкам программирования, а затем создал псевдотестовую среду в файле, в которую поместил все элементы класса Testa.
С помощью получившейся структуры, выполненной для Python, можно упорядочить список проведенных тестов, а чтобы провести те же тесты, например, в JavaScript, достаточно заменить знак комментария с «#» на «//».
# For a Simple assertion:
# ::import_start::
# --- Your imports here, if your methods need them ---
# ::import_end::
# ::testa_start::
# ::case_start::
# >> testa.isEqual(2, 2)
# << true
# ::case_end::
# ::testa_end::
#
# ::doc_start::
# .
# Here a small description of the function that will be generate on the documentation
# .
# ::doc_end::
#
# With methods :
# ::testa_start::
# ::case_start::
# >> addition(2, 2)
# << 4
# ::case_end::
# ::code_start::
def addition(a, b):
return a+b
# ::code_end::
# ::testa_end::
В конце автор производит стандартизацию теста с помощью только одной командной строки. Для этого он использует модель конфигурационного файла, похожую на package.json. Она описывает, какой каталог, проект или файл тестировать, с какого языка, и какой интерпретатор использовать.
Исходный код Testa есть на GitHub.

Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: