这是我的设置。
- 我有一个 grunt 任务,它做了 2 件事:1)启动一个在某个端口上监听的 http 服务器 2)触发另一个 grunt 任务
test-index.html
上面触发的 grunt 任务是一个 testem 任务,它在 PhantomJS的页面上运行测试。- 该
test-index.html
页面在我在第一个 grunt 任务中启动服务器的端口上发送一个 POST 调用。
问题:POST 调用未命中我的服务器。
注意:如果我手动运行同一台服务器(不是从 grunt 运行)然后运行测试 grunt 任务,则 POST 调用会命中服务器。
继承人的代码:
咕噜任务
grunt.registerMultiTask('coverage', 'Generates coverage reports for JS using Istanbul', function () {
var server = http.createServer(function(req, resp) {
resp.setHeader("Access-Control-Allow-Origin", "*");
console.log('Got something');
req.pipe(fs.createWriteStream('coverage.json'))
resp.end();
});
var port = 7358;
server.listen(port);
// This task simply executes a command: `testem.js ci`
grunt.task.run('testem').then(function() {
server.close();
});
});
test-index.html(在某处)
function onTestemLoad() {
Testem.on('all-test-results', function(results){
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:7358/');
xhr.send(JSON.stringify(window.__coverage__))
});
}
谁能指出这里可能出了什么问题?