2014-10-20 59 views
0

我想下載一個xml文件,所以我可以在nodejs中解析它。這是我通過mocha建立的測試,測試通過但沒有任何東西顯示在控制檯上。我究竟做錯了什麼?nodejs得到xml沒有返回

it('Get XML data', function() { 
var options = { 
     hostname: 'stona-app01.us.work.net', 
     port: 1213, 
     path: '/solrLive/STONA-STOUS-product-search-idx-en_US/select/?version=2.2&start=2&rows=2&qf=SKU&fl=*&indent=on&onlineFlag=1', 
     method: 'POST' 
    }; 

    var req = http.request(options, function(res) { 
     console.log('STATUS: ' + res.statusCode); 
     console.log('HEADERS: ' + JSON.stringify(res.headers)); 
     res.setEncoding('utf8'); 
     res.on('data', function (chunk) { 
     console.log('BODY: ' + chunk); 
     }); 
    }); 

    req.on('error', function(e) { 
     console.log('problem with request: ' + e.message); 
    }); 
}); 

代碼中的URL無法訪問,因此您將無法對其進行測試。

回答

0

您的測試是異步的,所以你必須定義測試採取done參數,並調用它,當你的測試完成:

it('Get XML data', function (done) { 
    var options = { 
     hostname: 'stona-app01.us.work.net', 
     port: 1213, 
     path: '/solrLive/STONA-STOUS-product-search-idx-en_US/select/?version=2.2&start=2&rows=2&qf=SKU&fl=*&indent=on&onlineFlag=1', 
     method: 'POST' 
    }; 

    var req = http.request(options, function(res) { 
     console.log('STATUS: ' + res.statusCode); 
     console.log('HEADERS: ' + JSON.stringify(res.headers)); 
     res.setEncoding('utf8'); 
     res.on('data', function (chunk) { 
     console.log('BODY: ' + chunk); 
     done(); // We're done! 
     }); 
    }); 

    req.on('error', function(e) { 
     console.log('problem with request: ' + e.message); 
     done(e); // Pass the error to Mocha. 
    }); 
}); 
+0

添加上面的代碼中並沒有解決問題。下面是我的控制檯➜新時代的自動化的git:(主)✗摩卡測試/單元測試 測試所有的自定義功能 ✓生成的電子郵件地址 ✓獲取XML數據 2經過(7毫秒) ➜新-age-automation git :(主)✗ – jrock2004 2014-10-21 00:31:54

+0

難道是因爲鏈接是一個xml頁面,而實際上並沒有調用一個.xml文件? – jrock2004 2014-10-21 00:54:24