我的任务是针对大型测试向量语料库(10M +)测试一些js函数,还要求在浏览器中进行测试,这迫使我从本地Web服务器流式传输testvector,而不是逐条记录地同步读取文件。
因此,我通过这种方式获取(每行ascii一个)测试向量:
const http = require('http');
const readline = require('readline');
FetchTestVectors = function(filename, recordCb) {
const url = "http://localhost:8080/" + filename;
http.get(url)
.on('response', function(response) {
readline.createInterface({
input: response
})
.on('line', function(line) {
recordCb(line);
})
});
}
当尝试对其进行测试时,内部describe-it块将被忽略(所有回调)。 但是,我可以看到正确的控制台转储。
describe('Test vector set', function () {
FetchTestVectors('1.input', function (record) {
console.log(record);
//throw new Error("oh no");
describe('one more vector', function () {
it('this vector is ok', function(done) {
console.log("==" + record);
//assert(MyTargetFunc(record));
done();
});
});
});
});
也抛出异常(带注释的行)的方法很奇怪:它只是中断了回调序列,报告中没有失败的测试。