2014-02-20 3 views
4

У меня есть модуль, я тестирую этот модуль с использованием мокко-phantomjs. Я создал файл package.jsonзапустите все файлы test.html в каталоге - mocha-phantomjs

{ 
    "name"  : "demo-test", 
    "scripts": { 
    "test": "npm run test-debug", 
    "test-debug": "mocha-phantomjs ./test/Test1.html" 
    }, 
    "dependencies" : { 
    "mocha"  : "1.13.x", 
    "commander" : "1.2.x", 
    "which"  : "~1.0.5", 
    "mocha-phantomjs": "3.3.2" 
    }, 
    "devDependencies" : { 
    "chai"   : "1.8.x", 
    "coffee-script" : "1.6.x", 
    "requirejs"  : "2.1.x", 
    "jquery"  : "2.1.0" 
    } 
} 

Тогда я бегу npm install, а затем npm test запустить тест. Он отлично работает и запускает тесты test1.html. Теперь я хочу, чтобы все файлы (test1, test2, ...) в тестовом каталоге выполнялись при запуске npm test.

Я могу запускать все html-файлы, вызывая их индивидуально в файле package.json, но если есть способ загрузить все файлы HTML.

+1

Эта [ссылка] [1] может вам помочь. Также проверьте ссылку [this] [2]. [1]: http://stackoverflow.com/questions/13281561/using-mocha-phantomjs-to-automate-functional-testing [2]: http://stackoverflow.com/questions/20376269/как к перспективе-мокко-и-мокко-phantomjs-тесты-из-одного-NPM-тест-команда-в-узел-J – ankitr

ответ

1

Как правило, вы бы передать файл Tests.html своим мокко-phantomjs бегун, который будет загружать на все тестовые файлы, которые вы хотите работать, используя теги сценария.

Tests.html будет содержать:

<script src="controller-tests/one-controller-test.js"></script> 
<script src="controller-tests/another-controller-test.js"></script> 
<script src="controller-tests/yet-another-controller-test.js"></script> 
<script src="service-tests/one-service-test.js"></script> 
<script src="service-tests/another-service-test.js"></script> 
<script src="service-tests/yet-another-service-test.js"></script> 

В качестве альтернативы, если вы используете RequireJS или другую AMD библиотеку, вы можете загрузить один тест-init.js файл и, в этом файле , требуют во всех тестовых файлах индивидуально или вложенным образом следующим образом:

Tests.html

<script src="test-init.js"></script> 

тест-init.js

require('controller-tests/init.js'); 
require('service-tests/init.js'); 

контроллер-тесты/init.js

require('one-controller-test.js'); 
require('another-controller-test.js'); 
require('yet-another-controller-test.js'); 

сервис-тесты/init.js

require('one-service-test.js'); 
require('another-service-test.js'); 
require('yet-another-service-test.js'); 
0

Я согласен с DanAri.

Я использую один и тот же загрузчик и установку тестирования.

Мокко BDD

Предположительно, по умолчанию работает в режиме Мокко «БДД» ищет HTML-файлы в директории «тест» в корне проекта. Он начинается с поиска файла с именем «test.html». «test/test.html» - это целевой путь по умолчанию для Mocha для использования в качестве файла привязки.

Что касается RequireJS/AMD

Что касается стороны клиента (AMD) ароматизирующие RequireJS, я использовать бинарный шаблон ветвления.

-index.html 
    | 
    -/js/rjsMain.js 
-test/test.html 
    | 
    -/js/rjsTest.js 

Я отделил свою конфигурацию RequireJS раздел в новый файл (я называю Mine "rjsConfig.js").Этот файл содержит псевдонимы путей, прокладки зависимостей и т. Д.

Итак, тогда мои RequireJS «данные основные» файл «/js/rjsMain.js» выглядит следующим образом:

require(['rjsConfig'], function() { 
    require(['app/main'], function() {}); 
}); 

Затем я продублировал Требовать «main.js» файл, чтобы добавить дополнительный вход точку для файла Mocha.

Причина этого в том, что вам не нужно поддерживать два отдельных файла конфигурации для Require. Приятно иметь один общий файл.

PhantomJS

Получение PhantomJS на самом деле загружать и взаимодействовать с контентом, который загружается асинхронно? Это другое дело. Это может быть довольно сложно.

К счастью, я нашел файл, который делает трюк.

Это не очень хорошее имя, но для меня, по крайней мере, «load_ajax.js» - секретный соус, который вам нужен, чтобы заставить его работать.

https://gist.github.com/kalharbi/fc9d4f71b5e2a8f485cc

Вам нужно настроить его для работы с местными маршрутами.

Смежные вопросы