Node.js/Javascript: mocha测试失败,测试将XML解析为JSON时超时
Node.js/Javascript: Failing mocha test with timeout on testing parsing XML to JSON
谁能帮我弄清楚为什么我失败的摩卡测试后,即使设置超时为15000ms。我知道这可能是内存泄漏等,但我找不到它在我的代码的任何地方。我使用了chrome调试器,并检查了JS堆最多使用48MB内存。(这还不算太糟?)这是我要测试的函数,它在一个名为xmlParser.js
var fs = require('fs'),
xml2js = require('xml2js'),
parser = new xml2js.Parser();
/**
* [parse - parses a xml file to json]
* @param {[string]} filename [name of the file to parse]
* @param {Function} callback [callback function]
* @return {[Function]} [returning callback function]
*/
function parse(filename, callback){
fs.readFile(filename, function(err, data){
if(err){
console.log('cannot read file.');
return callback(err);
} else {
parser.parseString(data, function(err, result){
if(err) {
console.log('cannot parse file.');
return callback(err);
}
else {
return callback(null, result);
}
});
}
});
}
module.exports = {
parse
}
它是做什么的?将xml文件解析为JSON。就这么简单!下面是我的测试方法,
var assert = require('chai').assert,
mocha = require('mocha'),
xmlParser = require('../utils/xmlParser.js'),
extractInformation = require('../utils/extractInformation.js');
//data-structures for parsed XML data (lists)
var logJSON = [], listJSON = [];
describe('parse xml files', function(){
this.timeout(150000);
it('should parse correctly', function(done){
this.timeout(150000);
setTimeout(done, 150000);
xmlParser.parse(__dirname + "/../xml/svn_log_test.xml", function(err, log) {
if(err) {
return done(err);
// assert.equal(true, false);
}
this.logJSON = log["log"]["logentry"];
xmlParser.parse(__dirname + "/../xml/svn_list_test.xml", function(err, list) {
if(err) {
return done(err);
// assert.equal(true, false);
}
this.listJSON = list["lists"]["list"][0]["entry"];
});
});
});
});
现在,在你说我现在没有使用任何断言语句之前,是的,我没有。但无论如何它都会通过的,对吧?它没有通过,在15000s后会出现超时错误
为什么不试着将settimeout设置为14秒呢?
setTimeout(function () {
done()
}, 140000);
javascript中的计时器不是很精确
相关文章:
- 模糊事件的Javascript测试
- 我的单元测试选项是什么
- 我应该如何从xml文件构建一个javascript页面
- 测试索引值是否等于某个数字的倍数
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 测试数组中每个项的内容
- 测试Angular Service解决错误回调中的promise
- 将XML转换为普通的旧JavaScript对象
- 使用Jest测试React Native应用程序
- jQuery AJAX write to XML
- 为函数代码编写测试
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 如何使用JS/nightwatchjs并行运行多个测试
- 使用量角器的当前url单元测试的getTitle
- 茉莉花宝石-耙茉莉花:ci dons't运行测试
- JavaScript滚动脚本-在测试中激发,而不是在开发站点上
- 如何将 XML 文件包含在摩卡测试用例中
- 测试 XML 元素是否存在时遇到问题
- Node.js/Javascript: mocha测试失败,测试将XML解析为JSON时超时
- 在jQuery中测试一个字符串是否为XML文档