Travis-CI с жасмином - node

Я пытаюсь заставить travis-ci протестировать мой модуль nodejs с помощью jasmine- node. Когда я запускаю тесты из командной строки, все они проходят, но по какой-то причине Travis всегда сообщает, что моя сборка не работает. Мой .travis.yml выглядит следующим образом:

language: node_js
node_js:
    - 0.6
    - 0.8

и мой package.json выглядит так:

"scripts": {
    "test": "jasmine-node tests/*.spec.js"
}

Я попытался добавить before_script к моему travis.yml

language: node_js
node_js:
    - 0.6
    - 0.8
before_script:
    - "sudo npm i -g jasmine-node"

Любые идеи?

Ответ 1

Проведя некоторое время с веб-приложением travis-ci lint web, похоже, что он просто сменился вопросом форматирования в моем файле .travis.yml. Мой текстовый редактор вставлял вкладки, где оказалось, что yaml требует, чтобы вы использовали только пробелы. Я также добавил хорошие цитаты вокруг всего.

Теперь он выглядит следующим образом: после того, как я использовал только пробелы и символы новой строки:

language: node_js
node_js:
    - "0.6"
    - "0.8"
before_script:
    - "npm i -g jasmine-node"

Ответ 2

Вот репозиторий с рабочим примером сборки travis, запускающей тесты jasmine-node: https://github.com/yosethegame/yosethegame.

Обратите внимание, что package.json объявляет зависимость jasmine-node, которую travis установит на фазе установки npm.

Ответ 3

У меня была аналогичная проблема некоторое время назад, я использовал в то время jasmine- node -g, и поскольку это была простая ката, я думал, что нет необходимости добавлять package.json в папку, но когда Я перешел на интеграцию того же проекта с travis-ci, я прошел через ад, чтобы настроить его.

Со временем я узнал, что лучше держать вещи красивыми и плотными и использовать ваш дружелюбный package.json вместо глобальных установок (здесь есть хорошая статья, говорящая об этом: Почему избежать глобальных тестовых бегунов)

Мой совет будет вам добавить jasmine- node в package.json, что-то короткое, чем это

{
    "name" : "XXX",
    "version" : "1.0.0",
    "devDependencies" : {
        "jasmine-node" : "latest"
    },
    "scripts" : {
        "test" : "jasmine-node specs/*spec.js"
    }  
}

Конечно, сэкономит вам головную боль и массу времени на настройку не только с интеграцией travis-ci, но и может спасти кого-то еще, если кто-то захочет повторно использовать то, что вы сделали.;)