在量角器框架中导入JSON文件
我想将测试数据保存在一个JSON文件中,我需要将其导入到定制框架中。我了解到,我们可以直接要求一个JSON文件,甚至可以使用量角器参数。然而,这不起作用。我没有看到当需要从特定文件夹中获取时列出的JSON文件 testdata.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
{
"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数据返回给它。