最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

在Node jsMochausing中加载json文件内容需要模块动态传递文件名

IT培训 admin 9浏览 0评论

在Node js / Mochausing中加载json文件内容需要模块动态传递文件名

我使用mocha / node js / cypress工具编写我的测试脚本,并能够使用以下语句加载json文件的数据:

var data = require('../../fixtures/TestData/JsonData/ABC_DEF.json');

如果我必须在脚本中动态传递文件名--ABC_DEF.json,如下所示,它不起作用。

var filename = 'ABC_DEF.json'
var data = require('../../fixtures/TestData/JsonData/'+filename);

我在赛普拉斯控制台中看到的错误是:

未捕获错误:找不到模块'../../fixtures/TestData/JsonData/ABC_DEF.json'

任何输入都受到高度赞赏。

注意:目标是读取文件名为动态变量的文件内容,并使用它的值动态构造测试名称 - it()。所以必须在describe块中读取文件,因为它优先于before()it()块。因此,cy命令不能被使用,因为它们不在外部测试运行,并且fs不能被使用,因为它们仅在节点上下文中运行,再次这可能仅通过cy.task

回答如下:

我会在readFileSync中添加一个编码,如下所示:

var fs = require('fs');
var data = fs.readFileSync('../../fixtures/TestData/JsonData/ABC_DEF.json', {encoding: 'utf-8'});
console.log(data);

如果你想要一个字符串而不是Buffer。如果你想要它是一个Object,你可以使用JSON.parse(data)将它变成一个对象。

我刚刚在命令行中执行了此操作,并且我有一个test.json文件:

> fs.readFileSync('test.json');
<Buffer 7b 0d 0a 09 22 74 65 73 74 22 3a 20 31 0d 0a 7d>
> fs.readFileSync('test.json', {encoding: 'utf-8'})
'{\r\n\t"test": 1\r\n}'
> JSON.parse(fs.readFileSync('test.json', {encoding: 'utf-8'}))
{ test: 1 }

在Node js / Mochausing中加载json文件内容需要模块动态传递文件名

我使用mocha / node js / cypress工具编写我的测试脚本,并能够使用以下语句加载json文件的数据:

var data = require('../../fixtures/TestData/JsonData/ABC_DEF.json');

如果我必须在脚本中动态传递文件名--ABC_DEF.json,如下所示,它不起作用。

var filename = 'ABC_DEF.json'
var data = require('../../fixtures/TestData/JsonData/'+filename);

我在赛普拉斯控制台中看到的错误是:

未捕获错误:找不到模块'../../fixtures/TestData/JsonData/ABC_DEF.json'

任何输入都受到高度赞赏。

注意:目标是读取文件名为动态变量的文件内容,并使用它的值动态构造测试名称 - it()。所以必须在describe块中读取文件,因为它优先于before()it()块。因此,cy命令不能被使用,因为它们不在外部测试运行,并且fs不能被使用,因为它们仅在节点上下文中运行,再次这可能仅通过cy.task

回答如下:

我会在readFileSync中添加一个编码,如下所示:

var fs = require('fs');
var data = fs.readFileSync('../../fixtures/TestData/JsonData/ABC_DEF.json', {encoding: 'utf-8'});
console.log(data);

如果你想要一个字符串而不是Buffer。如果你想要它是一个Object,你可以使用JSON.parse(data)将它变成一个对象。

我刚刚在命令行中执行了此操作,并且我有一个test.json文件:

> fs.readFileSync('test.json');
<Buffer 7b 0d 0a 09 22 74 65 73 74 22 3a 20 31 0d 0a 7d>
> fs.readFileSync('test.json', {encoding: 'utf-8'})
'{\r\n\t"test": 1\r\n}'
> JSON.parse(fs.readFileSync('test.json', {encoding: 'utf-8'}))
{ test: 1 }
发布评论

评论列表 (0)

  1. 暂无评论