-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Тестирование новых релизов arui-scripts #8
Comments
Существует несколько подходов к тестированию, которые мы можем применить в проекте. Для большей наглядности, представим что мы добавляем сжатие иконок и хотим написать тест, который будет проверять, что размер входного/выходного файла отличаются, равны заданным значениям и прочее. 1. Интеграционное тестированиеПодход заключается в фактическом запуске команды и проверки её результата - вывода в консоль, созданных файлов и т.д. Этот подход может быть реализован прямо сейчас без внесения изменений в кодовую базу. Но у него есть существенные недостатки и сложности. Основным недостатком является собственно необходимость запуска команды на исполнение, что в свою очередь несет следующие неудобства:
2. Юнит-тестированиеБолее строгий, изолированный и масштабируемый подход. Из недостатков - необходимость переработать кодовую базу. Суть подхода в том, чтобы ввести абстракцию над командами. Через абстракцию команда может быть вызвана программно, а не только путем реального запуска приложения. Это дает пространство для маневра: можно замокать сеть или файловую систему, а также проверять код/текст возникшей ошибки без необходимости парсить консоль. Пример ручной реализации подхода: Также можно взять довольно распространенный фреймворк для написание CLI (https://www.npmjs.com/package/commander), на котором можно реализовывать тестируемые приложения: |
А что если для начало определить критерии тестирования нового билда? Так будет проще понять, что потребуется для тестирования |
Попробовать написать свой плагин, предоставляющий статистику по результатам сборки |
Сейчас тестируется все руками, нужно проверять на базовых проектах разных направлений. Нужно решить, как это нормально делать.
The text was updated successfully, but these errors were encountered: