Универсальное модульное тестирование по комментариям
На 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.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: