Aurelia:错误:在使用Webpack进行的Karma测试中,无法找到ID为:aurelia-pal-browser的模块

时间:2018-07-16 15:16:58

标签: webpack aurelia karma-webpack aurelia-webpack

我在为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
  });
};

Aurelia测试

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();
  });
});

1 个答案:

答案 0 :(得分:0)

是的,大多数情况下,如果aurelia给出错误消息“无法找到具有ID的模块”,这是因为调用模块时未使用PLATFORM.moduleName()而引起的。尝试在您的项目中搜索模块名称“ aurelia-pal-browser”,并将其包装如下。 PLATFORM.moduleName('aurelia-pal-browser')