我正在尝试将Wallaby与LoopbackJS一起使用,并且过去几个小时只带来了失败。也许这里有人已经想出如何做到这一点。这是我的小袋鼠配置最接近“它的工作”
module.exports = function () {
return {
files: [
'server/**/*.js',
'common/**/*.js',
'test/global.js'
],
tests: [
'test/models/*.js',
'test/services/*.js'
],
workers: {
recycle: true //doesn't matter whats set here
},
bootstrap: function (wallaby) {
// try number 1
if (global.app) return;
var path = require('path');
var loopback = require('loopback');
var boot = require('loopback-boot');
wallaby.delayStart();
global.app = loopback();
// instead of __dirname I was trying also localProjectDir and projectCacheDir
boot(global.app, path.join(__dirname, 'server'), function () {
wallaby.start();
});
// try number 2
var path = require('path');
if (global.app) return;
global.app = require(path.join(wallaby.localProjectDir, 'server/server.js'));
},
env: {
type: 'node',
params: {
env: 'NODE_ENV=test'
}
}
};
};
尝试编号1启动但似乎未配置应用程序。 app.get('some-config')以及app.models.myModel始终未定义。 尝试2号似乎更好一点,因为它运行一些测试,但它会抛出与第一个相同的错误。
答案 0 :(得分:2)
将文件模式从**/*.js
更改为**/*.*
应该有所帮助,因为还有json文件,他们确实参与了模型和配置初始化,因此小袋鼠也需要它们。您还需要使用process.cwd()
或wallaby.projectCacheDir
代替wallaby.localProjectDir
,以便小袋鼠可以为您执行代码覆盖。
module.exports = function () {
return {
files: [
'server/**/*.*',
'common/**/*.*',
'test/global.js'
],
tests: [
'test/models/*.js',
'test/services/*.js'
],
bootstrap: function (wallaby) {
if (global.app) return;
var path = require('path');
global.app = require(path.join(process.cwd(), 'server/server.js'));
},
env: {
type: 'node',
params: {
env: 'NODE_ENV=test'
}
}
};
};