#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 ...
Я надеюсь, что это поможет.