我在为Aurelia组件创建测试时遇到问题。在Karma调试中,控制台显示:
Error: Unable to find module with ID: aurelia-pal-browser
来自aurelia-loader-webpack。
我正在使用Webpack 4和Karma 2。
我尝试了Debugging missing modules中的建议,但没有任何运气。
还有其他人遇到过吗?
module.exports = function(config) {
config.set({
basePath: '',frameworks: ['jasmine'],
files: [
'./setup.js',
'../src/**/*.js',
'./unit/**/*.js'
],
exclude: [],
preprocessors: {
'./setup.js': ['webpack'],
'../src/**/*.js': ['webpack', 'coverage'],
'./unit/**/*.js': ['webpack']
},
reporters: ['progress', 'coverage'],
webpack: {
mode: 'development',
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
}]
}
},
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
import { StageComponent } from 'aurelia-testing';
import { bootstrap } from 'aurelia-bootstrapper';
import { PLATFORM } from 'aurelia-pal';
export class TestViewModel {
}
describe('cbs-toast tests', () => {
let component;
let viewModel;
beforeEach(() => {
viewModel = new TestViewModel();
component = StageComponent
.withResources(PLATFORM.moduleName('cbs-toast'))
.inView('<div><toast></toast></div>')
.boundTo(viewModel);
});
it('loads ok', done => {
component.create(bootstrap).then(() => {
done();
}).catch(e => {
console.log(e.toString());
});
});
afterEach(() => {
component.dispose();
});
});
答案 0 :(得分:0)
是的,大多数情况下,如果aurelia给出错误消息“无法找到具有ID的模块”,这是因为调用模块时未使用PLATFORM.moduleName()而引起的。尝试在您的项目中搜索模块名称“ aurelia-pal-browser”,并将其包装如下。 PLATFORM.moduleName('aurelia-pal-browser')