在我的 JSPM 包上使用 JSPM 404 进行 Karma/Jasmine 单元测试
Posted
技术标签:
【中文标题】在我的 JSPM 包上使用 JSPM 404 进行 Karma/Jasmine 单元测试【英文标题】:Karma/Jasmine unit test with JSPM 404 on my JSPM packages 【发布时间】:2016-08-08 00:49:42 【问题描述】:我试图让 JSPM / Karma / Babel / Jasmine 一起工作。但是运行 karma start 时出现错误
15 04 2016 17:34:02.428:INFO [karma]: Karma v0.13.22 server started at http://localhost:9876/
15 04 2016 17:34:02.434:INFO [launcher]: Starting browser Chrome
15 04 2016 17:34:03.353:INFO [Chrome 49.0.2623 (Mac OS X 10.11.3)]: Connected on socket /#BSCbuviA4_LADHmaAAAA with id 80043999
15 04 2016 17:34:04.212:WARN [web-server]: 404: /base/aurelia-dependency-injection.js
15 04 2016 17:34:04.213:WARN [web-server]: 404: /base/aurelia-router.js
Chrome 49.0.2623 (Mac OS X 10.11.3) ERROR
Error: Error: XHR error (404 Not Found) loading /Users/allen/dev/work/Web/aurelia-dependency-injection.js
Error loading /Users/allen/dev/work/Web/wwwroot/src/app.js
我的文件夹结构:
> Web
karma.conf.js
-> node_modules
-> test
--> unit
-> wwwroot
--> src (all my js)
--> jspm_packages
config.js
我的 Karam.conf.js:
module.exports = function(config)
config.set(
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jspm', 'jasmine'],
jspm:
// Edit this to your needs
loadFiles: ['test/unit/setup.js', 'test/unit/**/*.js'],
serveFiles: ['wwwroot/src/**/*.js'],
paths:
'*': '*',
'github:*': 'jspm_packages/github/*',
'npm:*': 'jspm_packages/npm/*',
,
,
// list of files / patterns to load in the browser
files: [],
proxies:
'/base/jspm_packages/': '/base/wwwroot/jspm_packages/',
,
// list of files to exclude
exclude: [],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors:
'test/**/*.js': ['babel'],
'src/**/*.js': ['babel'],
,
babelPreprocessor:
options:
sourceMap: 'inline',
presets: ['es2015-loose', 'stage-1'],
plugins: [
'syntax-flow',
'transform-decorators-legacy',
'transform-flow-strip-types',
],
,
,
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Chrome'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false,
);
;
我的 app.js 有这些导入:
import inject from 'aurelia-dependency-injection';
import Router from 'aurelia-router';
import Navscroll from '../src/modules/scroll-anim.js'
我不确定我的代理设置是否正确或问题是什么?
【问题讨论】:
【参考方案1】:Error: Error: XHR error (404 Not Found) loading /Users/allen/dev/work/Web/aurelia-dependency-injection.js
Error loading /Users/allen/dev/work/Web/wwwroot/src/app.js
这是您的第一个问题。这不是您的代理的 XHRing。相反,它正在尝试使用路径 url。这肯定会失败,因为据我所知,XHR 只能执行 HTTP。您需要协议://主机:端口/路径格式。
尝试转到http://localhost:9876/src/app.js
并查看浏览器中显示的内容。 (可能不需要包含 /src/
app.js
可能会从 root 提供。)
您一定是在某处错误地加载了app.js
文件。请包括您加载的地点app.js
。
【讨论】:
以上是关于在我的 JSPM 包上使用 JSPM 404 进行 Karma/Jasmine 单元测试的主要内容,如果未能解决你的问题,请参考以下文章
如何将 ES6、AMD 和 CJS 模块与 JSPM 和系统 js 一起使用?