Как запустить тесты 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

Что Я пробовал:

  1. добавьте эти команды в npm test скрипт разделен точкой с запятой
    • : когда есть ошибка в первом скрипте, но нет ошибки во втором скрипте, команда вышла с 0 и Трэвис сборки прошло.
  2. пусть команда узла тест в npm test скрипт и создание пользовательского скрипта для тестов браузера. Чем добавить эти две команды (npm test и npm run-script test-browser) на Тревиса.YML в качестве матрица.
    • : пользователи должны вручную запустить два независимых тестовых сценария.
  3. пусть команда узла тест в npm test скрипт и добавление тестов браузера в . Трэвис.yml будет иметь только один скрипт, и пользователям также придется запускать один скрипт (все счастливы).
    • : он просто не чувствует себя хорошо, поэтому я хотел бы знать, если есть какой лучше путь.
3 56

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 использует эту библиотеку для разработки.