понедельник, 2 июля 2012 г.

jsTestDriver

что:
- сервер
- браузеры
- тесты

как:
- поднимается сервер (на localhost или любой машине)
- цепляются нужные браузеры (вручную или автоматически)
- прогоняются тесты (написанные с помощью jsTD или же QUnit)
- получаем результат (+ покрытие)

в официальной документации подробно рассказано о том, как запустить сервер и подключить всё, что следует. расскажу о деталях.

1. сервер
тут ничего сложного. поднимается запуском файла JsTestDriver.jar.

2. браузеры цепляются либо прописыванием полного пути до исполняемого файла в соответствующем флаге -browser "", либо заходим через нужный браузер на сервер и добровольно записываемся в рабство.

3. исполняемые тесты. jsTD понимает синтаксис QUnit после определённых махинаций:

3.1 Важно подключить QUnitAdapter до того, как подключены тесты. Например, мой .conf файл выглядит так:

server: http://localhost:4224


load:
 - qUnit/equiv.js
 - qUnit/qUnitAdapter.js
 - src/*.js
 - src-test/*.js


файлы могут лежать в любых папках, главное, прописать путь до них. В папке src-test лежат и те, и те js-ки с тестами на jstd и QUnit.

3.2 Если jstd будет ругаться на QUnit.equal(), можно добавить в qUnitAdapter следующие строчки:

window.equal = window.equals = function(a, b, msg) {
        assertEquals(msg ? msg : '', b, a);
    };
qUnitAdapter можно дописывать согласно собственным нуждам

3.3 Что знать о запуске.
jsTD умеет запускать testCase, test и файл с тестами. Структура тестов такая же, как в QUnit: есть модули = набор тестов, которые называются testCase.
--tests VAR: Run the tests specified by the supplied regular expression. Use '#' to denote the separation between a testcase and a test

4. codeCoverage
После подключения плагина для отчёта о покрытии получается группа xml-ников "тестовая группа - браузер", в которых содержится информация об исходе тестирования.

Вид "проекта":
 - out
 - plugins
        - coverage.jar
 - qUnit
        - equiv.js
        - qUnit.css
        - qUnit.js
        - qUnitAdapter.js
 - src
        - greeter.js
 -src
        - greeterTest.js
        - greeterQUnitTest.js
 - JsTestDriver.jar
 - jsTestDriver.conf

Вид jsTestDriver.conf:
server: http://localhost:4224

load:
 - qUnit/equiv.js
 - qUnit/qUnitAdapter.js
 - src/*.js
 - src-test/*.js

plugin:
- name: "coverage"
  jar: "plugins/coverage-1.3.4.b.jar"
  module: "com.google.jstestdriver.coverage.CoverageModule"

Комментариев нет:

Отправить комментарий