Artifact [65694c9787] Вы: nobody
Вход

Artifact 65694c9787194650846e10d13cc258e887306f39:

Wiki page [DevTools/testrunner.js] by kuntashov 2011-11-17 19:06:05.
D 2011-11-17T19:06:05.315
L DevTools/testrunner.js
P fc14d28031bf15ee1a4568f357c3278e0c660c2a
U kuntashov
W 3519
Скрипт <b>TestRunner</b> (testrunner.js)

Скрипт для автоматического выполнения юнит-тестов других скриптов-аддинов разработчиками.

В настоящий момент скрипт умеет следующее:
<ul>
<li>Загружать в дерево как отдельный тестовый скрипт, так и все тестовые скрипты из выбранного каталога.</li>
<li>Выполнять пакетно автоматически тесты с подсчетом статистики и выводом диагностических сообщений.</li>
<li>Выполнять подсчет выполненных/проваленных тестов.</li>
</ul>

<img src="raw?name=8daf60c9f750b4d229a49f711a8bea724b424470&m=image/png"/>

<h3>Зависимости</h3>
Скрипт основан на пулярной библиотеке юнит-тестирования для JavaScript [http://jsunit.net] и использует для своей работы ее порт для Снегопата, который также находится в репозитории: [/finfo?name=Libs/jsUnitCore.js|Libs/jsUnitCore.js].

Эта же библиотека рекомендуется авторам скриптов как библиотека для написания тестов. 

<h3>Требования к скриптам-тестам</h3>

Тестовый скрипт должен в имени файла иметь префикс "test". Это необходимо, чтобы TestRunner мог различать, какие скрипты в каталоге являются тестовыми, а какие - вспомогательными, которые загружать не надо.

Тест-кейсы - это макросы, т.е. функции с префиксом macros, но дополненным словом "Test". Другие макросы и функции из скрипта считаются служебными и не загружаются в дерево тестов.

Никаких других специальных требований к тестовым скриптам и их содержимому не предъявляются.

<h3>Примеры тестовых скриптов</h3>

Полноценные реальные тестовые скрипты, предназначенные для выполнения при помощи TestRunner'а, находятся в подкаталоге Tests\Automated каталога scripts.

Ниже приводится в качестве примера простейший тестовый скрипт.

Имя файла: textExampleTest.js

<pre>$engine JScript
$uname ExampleTest
$dname Пример тестового скрипта
$addin stdlib

// Подключаем библиотеку jsUnitCore.js
stdlib.require('jsUnitCore.js', SelfScript);

function macrosTest2plus2()
{
    assertEquals("Операция сложения не работает!", 4, 2 + 2);
}</pre>

<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 eddc7ce678eac74ff9606c471b86dece