Как запустить тесты mocha и mocha-phantomjs из одной команды "npm test" в узле.Джей?
у меня есть несколько пакетов узлов, которые работают в узле.JS-среда, а также в браузере. Теперь у меня есть два отдельных теста (для каждой среды). Каков наилучший способ запустить эти тесты с помощью just ? Также я хочу добавить эти пакеты к Трэвису.
Я использую mocha
и mocha-phantomjs
.
Node test command
node ./node_modules/mocha/bin/mocha ./test/node/index.js --reporter spec
тестовая команда браузера
node ./node_modules/mocha-phantomjs/bin/mocha-phantomjs ./test/browser/index.html
Что Я пробовал:
- добавьте эти команды в
npm test
скрипт разделен точкой с запятой- : когда есть ошибка в первом скрипте, но нет ошибки во втором скрипте, команда вышла с 0 и Трэвис сборки прошло.
- пусть команда узла тест в
npm test
скрипт и создание пользовательского скрипта для тестов браузера. Чем добавить эти две команды (npm test
иnpm run-script test-browser
) на Тревиса.YML в качестве матрица.- : пользователи должны вручную запустить два независимых тестовых сценария.
- пусть команда узла тест в
npm test
скрипт и добавление тестов браузера в . Трэвис.yml будет иметь только один скрипт, и пользователям также придется запускать один скрипт (все счастливы).- : он просто не чувствует себя хорошо, поэтому я хотел бы знать, если есть какой лучше путь.
3 ответа:
мне нравится следующее:
"scripts": { "test": "npm run test-node && npm run test-browser", "test-node": "mocha -R spec ./test/node/index.js", "test-browser": "mocha-phantomjs ./test/browser/index.html"}
The
&&
запускает только второй, если первый проходит, и вы можете запустить либо отдельно, если хотите. Обратите внимание, что npm всегда использует относительная мокко (внутри node_modules), а не глобальный, так что нет никакого вреда в том, чтобы просто позвонитьmocha
иmocha-phantomjs
напрямую. Вы можете быть еще более эффективным с мокко-b
вариант для залога, который выйдет, как только он столкнется с ошибкой.
пришел сюда в поисках информации о настройке
npm
Сkarma
. @данкон ответ можно адаптировать так:"scripts": { "test": "npm run test-node && npm run test-browser", "test-node": "karma run", "test-browser": "karma start --single-run" }
надеюсь, это поможет кому-то еще.
вы также можете использовать
npm-run-all
пакет:
npm install npm-run-all --save-dev
"scripts": { "test": "npm-run-all test-mocha test-mocha-phantomjs", "test-mocha": "mocha ./test/node/index.js --reporter spec", "test-mocha-phantomjs": "mocha-phantomjs ./test/browser/index.html" }
он будет запускать локальные копии
mocha
иmocha-phantomjs
. Twitter bootstrap использует эту библиотеку для разработки.