将 Wallaby 与 LoopbackJS 结合使用
Using Wallaby with LoopbackJS
我正在尝试将 Wallaby 与 LoopbackJS 一起使用,但最后几个小时只带来了失败。也许这里有人已经想出了如何去做。这是我最接近 "it's working"
的 wallaby 配置
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 似乎好一点,因为它运行了一些测试,但它抛出了与第一个相同的错误。
将您的文件模式从 **/*.js
更改为 **/*.*
应该会有所帮助,因为还有 json 文件并且它们参与模型和配置初始化,因此 wallaby 也需要它们.您还需要使用 process.cwd()
或 wallaby.projectCacheDir
而不是 wallaby.localProjectDir
以便 wallaby 可以为您完成代码覆盖。
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'
}
}
};
};
我正在尝试将 Wallaby 与 LoopbackJS 一起使用,但最后几个小时只带来了失败。也许这里有人已经想出了如何去做。这是我最接近 "it's working"
的 wallaby 配置 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 似乎好一点,因为它运行了一些测试,但它抛出了与第一个相同的错误。
将您的文件模式从 **/*.js
更改为 **/*.*
应该会有所帮助,因为还有 json 文件并且它们参与模型和配置初始化,因此 wallaby 也需要它们.您还需要使用 process.cwd()
或 wallaby.projectCacheDir
而不是 wallaby.localProjectDir
以便 wallaby 可以为您完成代码覆盖。
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'
}
}
};
};