Жасмин-узел и sails.js (0.10.0-rc8)

#sails.js #jasmine-node #sails-mongo

#sails.js #жасмин-узел #паруса-монго

Вопрос:

Когда я пытаюсь запустить что-то столь же простое, как это, я получаю сообщение об ошибке: «требуется корневой путь static ()».

Если выполняется только одно «оно», оно пройдет.

Кто-нибудь знает, в чем подвох?

 var Sails = require('sails');

describe("Crud tests:", function() {

    var app;

    beforeEach(function(done) {
        // Lift Sails and start the server
        Sails.lift({
                log: {
                    level: 'error'
                },
            }, function(err, sails) {
                console.log("sails lifted");
                app = sails;
                done(err, sails);
            });
    });

    afterEach(function(done) {
        Sails.lower(done);
        console.log('sails down');
    });


    it("1", function(done) {
        expect(1).toEqual(1);
        done();
    });

    it("2", function (done) {
        expect(2).toEqual(2);
        done();
    });

});
 

Ответ №1:

См. https://github.com/balderdashy/sails/issues/1860 , цитируемый ниже:

Глядя на основные тесты, даже в тех, где мы поднимаем / опускаем для каждого отдельного теста, это всегда с новым экземпляром Sails. Я не думаю, что много испытаний ушло на опускание / повторный подъем одного и того же экземпляра, и я не был бы шокирован, узнав, что некоторые глобальные переменные зависают вокруг, что портит последовательность подъема. Поэтому, если нет причины, по которой вам нужно, чтобы это были те же паруса, а не новые паруса с теми же параметрами, я бы последовал примеру основных тестов и создал новый экземпляр. Для этого вам потребуется фабрика Sails, а не полный модуль Sails:

 var Sails = require('Sails/lib/app') 
var sailsInstance = new Sails();
sailsInstance.lift(...);
 

Комментарии:

1. Попробовал этот подход, и на первый взгляд он ведет себя так же. Попытаюсь отладить его и посмотреть, не вызывает ли это что-то еще. Какой тестовый фреймворк вы рекомендуете? Это вовсе не обязательно должен быть Jasmine — мне просто нужен надежный и документированный способ проведения надлежащего тестирования.

2. Привет, спасибо за быстрый ответ. Вот некоторые подробности о приведенном выше подходе — на этот раз новая ошибка во вновь созданном приложении sails с одним контроллером / моделью под названием ‘lol’: i.imgur.com/KtqkgtB.png?1

3.Вы по-прежнему используете один и тот же экземпляр для каждого теста. Поместите sailsInstance = new Sails() внутри beforeEach функции.

4. просто хотел сообщить вам — я смог начать с нуля с вашими документами по тестированию для mocha без каких-либо проблем — даже без необходимости использовать sailsInstance и lifting перед каждым тестом. Мокко, очевидно, хорошо играет с парусами. Единственная проблема, которая у меня была / есть, связана с этим файлом тестирования начальной загрузки, о котором вы, ребята, упомянули, но мне даже не нужно беспокоиться об этом, потому что, когда я помещаю все это в файл спецификации, он работает безупречно.

Ответ №2:

Я думаю, что sails v0.10 это должно быть снято по-другому. Приведенный ниже код взят из моего проекта, который выполняется дальше rc9 .

 # test/support/sails.coffee

process.env.NODE_ENV = 'test'
process.env.PORT = 1338

Sails = require('sails/lib/app')
app = Sails()

beforeEach (done) ->
  app.lift 
    models: 
      migrate: 'drop' # rebuild database (optional)
  , done

afterEach (done) ->
  app.lower done

describe ...
 

Я надеюсь, что это поможет.