Скрипт TestRunner (testrunner.js)
Скрипт для автоматического выполнения юнит-тестов других скриптов-аддинов разработчиками.
В настоящий момент скрипт умеет следующее:
- Загружать в дерево как отдельный тестовый скрипт, так и все тестовые скрипты из выбранного каталога.
- Выполнять пакетно автоматически тесты с подсчетом статистики и выводом диагностических сообщений.
- Выполнять подсчет выполненных/проваленных тестов.
Зависимости
Скрипт основан на популярной библиотеке юнит-тестирования для JavaScript http://jsunit.net и использует для своей работы ее порт для Снегопата, который также находится в репозитории: Libs/jsUnitCore.js.Эта же библиотека рекомендуется авторам скриптов как библиотека для написания тестов.
Настройки скрипта
Скрипт имеет следующие настройки:
- Автоматически перезагружать тесты перед повторным выполнением - если установлена, то при нажатии на кнопку "Выполнить все тесты" тесты сначала будут полностью перезагружены, и лишь затем запущены на выполнение. По умолчанию настройка сброшена и при повторном выполнении тестов они не перезагружаются.
- Выводить информацию об успешном выполнении тестов - если эта настройка установлена, то в окно сообщений будут выводиться не только сообщения об ошибках, но и информация о каждом успешно выполненном тесте. По умолчанию выводится только информация о сломанных тестах и сообщения о возникнувших ошибках.
Требования к скриптам-тестам
Тестовый скрипт должен в имени файла иметь префикс "test". Это необходимо, чтобы TestRunner мог различать, какие скрипты в каталоге являются тестовыми, а какие - вспомогательными, которые загружать не надо.
Тест-кейсы - это макросы, т.е. функции с префиксом macros, но дополненным словом "Test" (например, macrosTestВыполнить). Другие макросы и функции из скрипта считаются служебными и не загружаются в дерево тестов.
Никаких других специальных требований к тестовым скриптам и их содержимому не предъявляются.
Примеры тестовых скриптов
Полноценные реальные тестовые скрипты, предназначенные для выполнения при помощи TestRunner'а, находятся в подкаталоге Tests\Automated каталога scripts.
Ниже приводится в качестве примера простейший тестовый скрипт.
Имя файла: textExampleTest.js
$engine JScript $uname ExampleTest $dname Пример тестового скрипта $addin stdlib // Подключаем библиотеку jsUnitCore.js stdlib.require('jsUnitCore.js', SelfScript); function macrosTest2plus2() { assertEquals("Операция сложения не работает!", 4, 2 + 2); }
Полезные ссылки
Attachments:
- testrunner-testing.PNG added by kuntashov on 2011-11-22 18:30:38. [details]
- testrunner-settings.PNG added by kuntashov on 2011-11-22 18:27:31. [details]