1

我正在尝试通过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-qunitPhantomJSgrunt-lib-phantomjsSO“PhantomJS 中的代理”

4

0 回答 0