DOH-командное тестирование функций JavaScript вне корня Dojo - PullRequest
4 голосов
/ 21 января 2010

Я пытаюсь запустить DOH из dojo-1.3.2 для тестирования простых функций Javascript из командной строки.Однако я не могу заставить что-либо работать, и сеть, кажется, лишена документации командной строки DOH.

В идеале мне нужна следующая структура:

Постоянные тесты: C: \ myproject \ tests \

Постоянные Dojo: C: \ dojo-1.3.2 \ util \doh

На данный момент я поместил простой тест в .. \ doh \ tests

Я пытаюсь запустить, находясь в каталоге .. \ doh:

java -jar .. \ shrinksafe \ js.jar runner.js testModule = tests.module

Каждый раз, когда я получаю:

js: необработанное исключение времени выполнения JavaScript: ReferenceError: «окно» не определено.Возникла исключительная ситуация: ошибка: не удалось загрузить «tests.module»;последняя попытка 'tests / module.js' 0 тестов для запуска в 0 группах

Есть ли что-то, что я должен сделать, что я пропустил?Я также пытался указывать на файл dojo.js, используя dojoUrl =, но все еще с той же ошибкой.

Насколько я вижу, мои тесты нигде не используют окно.У меня есть три файла:

tests / module.js

dojo.provide("tests.module");
dojo.require("tests.functions.functions");

tests / functions / functions.js

dojo.provide("tests.functions.functions");
dojo.require("tests.demoFunctions");

doh.register("tests.functions.functions", [
    function test_alwaysTrue(){
        doh.assertTrue(tests.demoFunctions.alwaysTrue());
    }
]);

tests / demoFunctions.js

    dojo.provide("tests.demoFunctions");

tests.demoFunctions.alwaysTrue = function(){
    return true;
};

Я также попытался реструктурировать каталог, чтобы ../dojo-1.3.2/ содержал тесты.Выполнение той же команды, что и выше, из командной строки происходит одинаково.Структура Dir:

/dojo-1.3.2

   /dojo
   /tests
   ...
   /util

      /shrinksafe
      ...
      /doh

Ответы [ 4 ]

1 голос
/ 29 июня 2011

Если вы хотите, чтобы ваш testFolder хранился вне директории по умолчанию dojo-release-x.x.x \. Добавьте следующее к вашей команде: registerModulePath = тесты, .. / MyProject / тесты

Возможно, вам придется правильно отредактировать .. / , чтобы найти фактическую структуру каталогов.

1 голос
/ 21 января 2010

Не уверен, откуда исходит «окно», но я не думаю, что doh когда-либо работал правильно с тестами вне каталога Dojo. Работает ли это, если вы копируете util / doh в качестве партнера вашей тестовой директории?

0 голосов
/ 10 февраля 2014

В командной строке можно запускать тесты DOH, включая тесты вне дерева исходных текстов dojo. Создайте файл конфигурации, например, так, чтобы ваши модули кода относились к расположению dojo / util / doh:

require({
    paths: {
        "org/myorg" : "../../../mycode/org/myorg",
        "com/mycom" : "../../../x/com/mycom"
    }
});

и назовите его config.js. Откройте окно командной строки и перейдите в каталог, содержащий каталоги «dijit», «dojo», «dojox» и «util». Запустите эту команду:

java -jar util/shrinksafe/js.jar dojo/dojo.js baseUrl=file:///full/path/to/dojo/dojo load=file://full/path/to/config.js load=doh test=com/mycom/tests

Полный ответ здесь: http://dojotoolkit.org/reference-guide/1.9/util/doh.html

Более подробное объяснение здесь: http://www.artificialworlds.net/blog/2012/10/09/running-dojo-doh-unit-tests-on-the-command-line-with-rhino/

0 голосов
/ 16 ноября 2011

Здесь есть патч: http://bugs.dojotoolkit.org/ticket/10511, который позволяет запускать тесты командной строки вне корня dojo, но, похоже, он не был применен, в dojo-1.6.1, в любом случае.

...