私はnode.jsでインターンを使用しており、ajaxテスト用にインターンをセットアップしようとしています。以下のサーバー コードは直接 GET リクエストを処理しますが、Intern による XHR リクエストは到達していないようです。この問題は、Node.js の proxyUrl セットアップに関係していると思われます。
server/main.js: ノード/エクスプレス
...
app.get('/data', function(request, response, next){
if(request.xhr)
{
var data = dfs.readFileSync("src/server/data.json");
response.render(data, {
root: root,
error: new Error('Cant read file')
});
}
else
next();
});
...
app.listen(8001);
http_proxy.createServer(function(req,res, proxy){
proxy.proxyRequest(req,res, {host:'localhost', port:8001});
}).listen(9000);
intern.hello.js: (単体テスト コード)
...
'async test': function () {
var dfd = this.async(1000);
request('/data').then(dfd.callback(function (data) {
assert.strictEqual(data, 'hello world');
}, dfd.reject.bind(dfd)));
}
インターン構成:
...
proxyPort:9000,
proxyUrl: 'http://localhost:8001/',
...
内部エラー:
Warning: FAIL: async test (1015ms)
Error: Timeout reached on main - wait - async test
at Error (<anonymous>)
at new ErrorCtor (.../node_modules/intern/node_modules/dojo/errors/create.js:13:21)
at null._onTimeout (.../node_modules/intern/lib/Test.js:164:21)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
2/3 tests passed
2/3 tests passed Use --force to continue.