Artifact
89ba0ba79295e21861cb77daf2f873322cd2c22a:
Wiki page
[
DevTools/testrunner.js] by
kuntashov
2011-11-22 18:46:58.
D 2011-11-22T18:46:58.217
L DevTools/testrunner.js
P 4187e77872995c4bdd48516cabebdc538ce9495d
U kuntashov
W 4935
Скрипт <b>TestRunner</b> (testrunner.js)
Скрипт для автоматического выполнения юнит-тестов других скриптов-аддинов разработчиками.
В настоящий момент скрипт умеет следующее:
<ul>
<li>Загружать в дерево как отдельный тестовый скрипт, так и все тестовые скрипты из выбранного каталога.</li>
<li>Выполнять пакетно автоматически тесты с подсчетом статистики и выводом диагностических сообщений.</li>
<li>Выполнять подсчет выполненных/проваленных тестов.</li>
</ul>
<img src="raw?name=a19448959f2970514c9ad190642246eca8accc0e&m=image/png"/>
<h3>Зависимости</h3>
Скрипт основан на популярной библиотеке юнит-тестирования для JavaScript [http://jsunit.net] и использует для своей работы ее порт для Снегопата, который также находится в репозитории: [/finfo?name=Libs/jsUnitCore.js|Libs/jsUnitCore.js].
Эта же библиотека рекомендуется авторам скриптов как библиотека для написания тестов.
<h3>Настройки скрипта</h3>
Скрипт имеет следующие настройки:
<ul>
<li><b>Автоматически перезагружать тесты перед повторным выполнением</b> - если установлена, то при нажатии на кнопку "Выполнить все тесты" тесты сначала будут полностью перезагружены, и лишь затем запущены на выполнение. По умолчанию настройка сброшена и при повторном выполнении тестов они не перезагружаются.</li><br/>
<li><b>Выводить информацию об успешном выполнении тестов</b> - если эта настройка установлена, то в окно сообщений будут выводиться не только сообщения об ошибках, но и информация о каждом успешно выполненном тесте. По умолчанию выводится только информация о сломанных тестах и сообщения о возникнувших ошибках.</li>
</ul>
<img src="raw?name=16a44c8c03fd470bc70da0ca4b86a3fc24c45b6c&m=image/png"/>
<h3>Требования к скриптам-тестам</h3>
Тестовый скрипт должен в имени файла иметь префикс "test". Это необходимо, чтобы TestRunner мог различать, какие скрипты в каталоге являются тестовыми, а какие - вспомогательными, которые загружать не надо.
Тест-кейсы - это макросы, т.е. функции с префиксом macros, но дополненным словом "Test" (например, macrosTestВыполнить). Другие макросы и функции из скрипта считаются служебными и не загружаются в дерево тестов.
Никаких других специальных требований к тестовым скриптам и их содержимому не предъявляются.
<h3>Примеры тестовых скриптов</h3>
Полноценные реальные тестовые скрипты, предназначенные для выполнения при помощи TestRunner'а, находятся в подкаталоге Tests\Automated каталога scripts.
Ниже приводится в качестве примера простейший тестовый скрипт.
Имя файла: textExampleTest.js
<verbatim>$engine JScript
$uname ExampleTest
$dname Пример тестового скрипта
$addin stdlib
// Подключаем библиотеку jsUnitCore.js
stdlib.require('jsUnitCore.js', SelfScript);
function macrosTest2plus2()
{
assertEquals("Операция сложения не работает!", 4, 2 + 2);
}</verbatim>
<h3>Полезные ссылки</h3>
<ul>
<li>[http://snegopat.ru/forum/viewtopic.php?f=3&t=67|Обсуждение на форуме]
<li>[/finfo?name=DevTools/testrunner.js|История версий скрипта]</li>
<li>[http://jsunit.net/|Документация по jsUnit]</li>
</ul>
Z b4328b962e26ecd87ea53bc98836b16f