在量角器框架中导入JSON文件

在量角器框架中导入JSON文件,json,import,protractor,Json,Import,Protractor,我想将测试数据保存在一个JSON文件中,我需要将其导入到定制框架中。我了解到,我们可以直接要求一个JSON文件,甚至可以使用量角器参数。然而,这不起作用。我没有看到当需要从特定文件夹中获取时列出的JSON文件 testdata.json { "name":"testdata", "version":"1.0.0", "username":"1020201", "password":"1020201" } Config.js中的代码 onPrepare: func

我想将测试数据保存在一个JSON文件中,我需要将其导入到定制框架中。我了解到,我们可以直接要求一个JSON文件,甚至可以使用量角器参数。然而,这不起作用。我没有看到当需要从特定文件夹中获取时列出的JSON文件

testdata.json

{
    "name":"testdata",
    "version":"1.0.0",
    "username":"1020201",
    "password":"1020201"
}
Config.js中的代码

onPrepare: function() {
  var data = require('./testdata.json');
},
在require中提供路径时,我没有看到testdata.json文件,尽管它在该位置可用

我希望使用data.name、data.version等访问JSON数据

以下是我的文件夹结构:


您应该确保您的json文件位于当前目录中&并且位于配置文件所在的同一文件夹中,正如您提供的路径
require('./testdata.json')-

有许多方法可以设置数据变量并在测试脚本中全局访问它们-

第一种方法:首选方法是使用节点的全局对象-

onPrepare: function() {
   global.data = require('./testdata.json');
},
现在,您可以访问脚本中的任何位置的
数据

第二种方法是使用量角器的
param
对象-

exports.config = {

params: {
    data: require('./testdata.json');
}
};

然后,您可以使用
browser在specs/test脚本中访问它。params.data

是与
Config.js
位于同一文件夹中的
testdata.json
?是。即使我把它放在不同的文件夹中,并尝试给出一个相对值,即“./foldername/testdata.json”。它不起作用。在尝试给出路径时,我实际上没有看到该文件。请给出文件夹结构的屏幕截图,以说明
testdata.json
config.js
之间的关系,以及运行案例的cmd窗口。所讨论的给定内容是
testdata.json
中的所有文本?如果否,则显示
testdata.json
中的所有文本。一个可能的原因是您的
testdata.json
不是包含错误语法的有效json文件。我已将屏幕截图附在问题后面。看一看。我也验证了我的json,并且是有效的。在我的配置文件中需要的代码是global.data=require('./test\u data/testdata.json')。我在本地尝试并使用过,请检查文件名
testdata.json的标题或结尾处是否没有空格。如果没有,请创建另一个json文件,只需将
{}
放入其中,然后尝试请求新文件。另一种方法是打开一个cmd窗口,切换
test\u data
文件夹,然后键入
node
按enter键,然后键入
console.dir(require('testdata.json'))
,看看会发生什么情况等待您的回答。我理解这些方式。我面临的问题是,它在导入时无法识别JSON。我只能导入JS文件。我需要安装一些东西使其工作吗?我使用的是node 8.9.4。不,您不必安装任何东西,我也没有得到部分-‘导入时它无法识别JSON’。导入后是否尝试将数据打印到控制台?确定。我使用的是Visual Studio代码IDE,我的意思是,当我编写require语句时,它无法识别保存在该位置的JSON文件。它只显示JS文件。如果你说的是intellisense没有检测到json文件,那么这与量角器或cucumber无关。如果您想要intellisense,您可能应该将typescript与commonjs模块配置一起使用!是的,你说得对。但即使我像你说的那样实施任何一种方法。我得到的数据变量是未定义的,因为require没有将JSON数据返回给它。