2014-11-10 2 views
6

Я совершенно новичок в парусах, узлах и js в целом, поэтому мне может быть недостает чего-то очевидного.Sails.js: Как на самом деле запускать тесты

Я использую паруса 0.10.5 и узел 0.10.33.

В документации sails.js есть страница об испытаниях http://sailsjs.org/#/documentation/concepts/Testing, но это не говорит мне, как их фактически запускать.

Я установил каталоги в соответствии с этой документацией, добавил тест под названием test/unit/controllers/RoomController.test.js, и теперь я бы хотел его запустить.

Нет команды 'sails test' или ничего подобного. Я также не нашел никаких признаков того, как добавить задачу, поэтому тесты всегда запускаются до «подъема парусов».

ответ

4

Смотрите мою тестовую структуру в we.js: https://github.com/wejs/we-example/tree/master/test

Вы можете скопировать и вставить в вас sails.js приложение и удалить плагин we.js функцию в bootstrap.js

И изменить вам пакет .json использовать набор правильную команду мокко в тесте НПМ: https://github.com/wejs/we-example/blob/master/package.json#L10

- редактировать -

Я создал простой sails.js 0.10.x тестовый пример см в: https://github.com/albertosouza/sails-test-example

+1

Большое спасибо. Теперь я могу использовать «npm test» для запуска тестов. – kvbx

1

Учитывая, что они не дают специальные инструкции и что они используют Mocha, я бы ожидать, что запуск mocha из командной строки, в то время как вы находитесь в родительского директории test будет работать.

1

Sails использует мокко в качестве платформы тестирования по умолчанию. Но Sails не обрабатывают сам тест.

Поэтому вы должны запустить его вручную, используя команду mocha.

Но есть статья, как сделать все материалы Sails включенными в тесты. http://sailsjs.org/#/documentation/concepts/Testing

6

ДОПОЛНЕНО-2: После борьбы лила немного с тем, насколько это требуется для выполнения модульного тестирования таким образом, я решил создать модуль для загрузки моделей и превратить их в глобал так же, как парус делает, но без так много. Даже когда вы снимаете каждый крюк, но орм-загрузчик в зависимости от машины, он может легко взять пару секунд БЕЗ КАКИХ-ЛИБО ИСПЫТАНИЙ !, и по мере добавления моделей он становится медленнее, поэтому я создал этот модуль под названием waterline-loader, чтобы вы могли загрузить только основы (его примерно в 10 раз быстрее), модуль не стабилен и нуждается в тесте, но вы можете использовать его или изменить его в соответствии с вашими потребностями, или помочь мне улучшить его здесь ->https://github.com/Zaggen/waterline-loader


ДОПОЛНЕНО-1: Я добавил информацию, относящуюся к управлению тесты с мокко к docs под Запуск тестов раздела.


Просто чтобы узнать, что сказали другие (особенно то, что сказал Альберто Суза).

Вам нужно два шага, чтобы мокко работал с парусами по своему усмотрению. Во-первых, как указано в sails.js Docs, вам нужно поднять сервер перед запуском вашего теста, и для этого вы создаете файл с именем bootstrap.test.js (его можно назвать любым, что вам нравится) в корневом пути (необязательно) ваши тесты (test/bootstrap.test.js), которые сначала будут вызываться mocha, а затем будут вызывать ваши тестовые файлы.

var Sails = require('sails'), 
    sails; 

before(function(done) { 
    Sails.lift({ 
    // configuration for testing purposes 
    }, function(err, server) { 
    sails = server; 
    if (err) return done(err); 
    // here you can load fixtures, etc. 
    done(err, sails); 
    }); 
}); 

after(function(done) { 
    // here you can clear fixtures, etc. 
    sails.lower(done); 
}); 

Теперь в вашем package.json, на ключе скриптов, добавьте эту строку (Ignore комментарии)

// package.json .... 
scripts": { 
    // Some config 
    "test": "mocha test/bootstrap.test.js test/**/*.test.js" 
    }, 
// More config 

Это загрузит файл bootstrap.test.js, поднимите сервер парусов, и затем запускает все ваши тесты, которые используют формат «testname.test.js», вы можете изменить его на «.spec.js», если хотите.

Теперь вы можете использовать npm test для запуска теста.

Примечание, что вы могли бы сделать то же самое, не изменяя свой package.json и typying mocha test/bootstrap.test.js test/**/*.test.js в командной строке

PST: Для более подробной конфигурации bootstrap.test.js проверки Альберто Souza ответили или прямо проверьте это file in hist github repo

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