これが私のセットアップです。
- 私は2つのことを行う面倒なタスクを持っています:1)いくつかのポートでリッスンしているhttpサーバーを開始します2)別の面倒なタスクをトリガーします
- 上記でトリガーされた grunt タスクは、PhantomJS の
test-index.html
ページでテストを実行する testem タスクです。 - ページは
test-index.html
、最初の単調なタスクでサーバーを起動するポートで 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__))
});
}
ここで何がうまくいかないのか誰でも指摘できますか?