我正在尝试通过grunt-contrib-qunit运行集成测试。我已经--proxy
通过对象设置了标志options
,每个 ajax 请求都返回一个 404(未找到)错误。
Gruntfile.js
grunt.loadNpmTasks('grunt-contrib-qunit');
...
grunt.initConfig({
qunit: {
options: {
'--local-to-remote-url-access': true,
'--proxy': '192.168.1.1:8080'
},
all: [
'test/**/*.html'
]
},
...
});
...
grunt.registerTask('test', [
'clean:server',
'compass',
'connect:test',
'qunit:all'
]);
QUnit 测试本身在最简单的 AJAX 请求上失败,并出现 404:
测试/index.html
test('Works', function() {
stop();
$.ajax({
url: '/svc/version',
success: function() {
ok(true, 'yippee');
start();
},
error: function(xhr) {
console.log('Error: ' + xhr.status);
}
});
});
失败:
Running "qunit:all" (qunit) task
Testing test/index.htmlError: 404
值得注意的是,显式引用主机 ( url: 'http://192.168.1.1:8080/svc/version'
) 可以正常工作,因此这不是同源问题。
参考:grunt-contrib-qunit,PhantomJS,grunt-lib-phantomjs,SO“PhantomJS 中的代理”