我正在使用Phantomjs和Karma进行Jasmine测试。
一旦karma在我的包含脚本中达到jquery,我就会收到错误。
但我已将其包含在我的files: []
部分中。
这是我的karma.config.js
文件的样子
// Karma configuration
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine-jquery','jasmine'],
// list of files / patterns to load in the browser
files: [
'resources/assets/bower/jquery/dist/jquery.js',
'resources/assets/bower/jquery-ui/jquery-ui.min.js',
// I tried loading them in with a CDN also
//"https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js",
//"https://code.jquery.com/ui/1.11.2/jquery-ui.js",
'public/js/vendor.js',
'spec/mainjsTests/*.js',
'spec/javascripts/fixtures/*.css',
// fixtures
{
pattern: 'spec/javascripts/fixtures/*.html',
watched: true,
included: true,
served: true
}
],
exclude: [
],
preprocessors: {
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
plugins: [
'karma-*'
],
singleRun: false
});
};
我的所有JS文件都内置在供应商文件中,所以我只是链接了那个。它们按照从我的Gulp文件中调用的顺序列出。
一旦Karma到达jQuery的第一行,就会出错。
$ karma start karma.conf.js
INFO [karma]: Karma v0.12.36 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.8 (Mac OS X 0.0.0)]: Connected on socket sHWba0Xi_dR9PuTbDdhx with id 19415635
PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR
TypeError: 'null' is not an object (evaluating 'document.getElementById('uploadFile').files')
at /Users/me/PersonalProjects/HSAnnotator/public/js/vendor.js:2975
我通过注释掉这一行来测试它,然后在jQuery的下一行出错。
除了jQuery之外的所有内容都是用npm安装的,只有jquery安装了bower。我不认为这很重要,因为我也尝试过CDN链接,这让我相信我的karma.config
文件中列出的其他内容是错误的。