量角器数据驱动 - 当我尝试打印 JSON 文件时显示 'undefined'

Protractor data driven - Is displaying 'undefined' when I try to print JSON file

我正在使用量角器并尝试实现数据驱动。

我正在使用我在 google 中搜索到的代码。

这是我的test.json

{
"username":"testusername"
}

我从我的规范中调用这个 json 并尝试在控制台中打印:

var fs = require('fs');
var content = fs.readFileSync('test/e2e/tests/test.json');
console.log(content.username);

测试没有失败,但在控制台中打印 undefined

enter image description here

我错过了什么?或者我没有很好地执行 json? 希望你能帮助我。

您没有解析 JSON。 readFileSync 确实将文件作为字符串读取。所以 content 是一个包含 JSON 的字符串,而不是对象。

解决方法就是简单的使用JSON.parse:

var content = JSON.parse(fs.readFileSync('test/e2e/tests/test.json'));

你只需要做 require(json_file_path)。它会起作用。试试下面的代码。

var content = require('test/e2e/tests/test.json');
console.log(content.username);

试试这个解决方案。

  1. 主要规格:

    var testData = require('./Data.json');  
    describe('...', function() {
    
        testData.forEach( function (data) {
    
            var strUser = data.strUser;  
            var strPass = data.strPass;
    
            it('...', function() {
                <code here>
            });
    
        });
    
    });
    
  2. 在 Data.json 上(与 Main spec 位于同一文件夹中):

    [{
        "strUser": "user1",
        "strPass": "pass1"
    },
    {
        "strUser": "user2",
        "strPass": "pass2"
    },
    {
        "strUser": "user3",
        "strPass": "pass3"
    }]
    

希望对您有所帮助:)