将xml文件导入到test.js文件中



我想用jest执行单元测试,将xml文件转换为json。我在文件夹中创建了一个example.xml文件,但我不知道如何将其导入到test.js文件中有人有主意吗?

例如,如果要加载./sample.xml:

<retrieveCustomer><id>39399444</id></retrieveCustomer>

以下是要从文件加载的代码:

var fs = require('fs'),
xml2js = require('xml2js');
var parser = new xml2js.Parser();
(async function () {
fs.readFile(__dirname + '/sample.xml', function(err, data) {
parser.parseString(data, function (err, result) {
console.dir(result);
console.log(typeof result);
console.log('Done');
});
});
}())

这是打印结果:

$ node index.js
{ retrieveCustomer: { id: [ '39399444' ] } }
object
Done

您可能不需要将其作为对象导入(就像这里的parseString一样(,但如果您想将其作为原始导入,可以使用fs.readFile,然后将输出流式传输到要测试的程序。

require('file.xml')无法工作,因为它只能用于加载和运行Javascript文件或读取和解析JSON文件。它不用于加载其他文件格式。

希望这能有所帮助!

Jest不知道如何处理JS之外的任何文件类型。您必须使用";变压器";以加载和操作其他类型。您还需要更新jest.config.js以将这些文件指向您的转换器。

更新jest配置-->https://github.com/facebook/jest/issues/2663

对于TypeScript,您还需要@types/XML.d.ts,此处提供详细信息。。。

如何在React typescript 中读取xml文件(toolsbox.xml(

最新更新