2017-03-28 5 views
1

私は分度器を使っていますが、データ駆動型を実装しようとしています。分度器データ駆動 - JSONファイルを印刷しようとすると「未定義」と表示されます

私はGoogleで検索したこのコードを使用しています。

これは私のtest.json

{ 
"username":"testusername" 
} 

であり、私は私のスペックからこのJSONを呼び出すと、コンソールで印刷しようとしている:テストが失敗していない

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

コンソールには、が定義されていません

enter image description here

私に何か不足していますか?または私はjsonをうまく実装していないのですか? あなたが私を助けてくれることを願っています。

答えて

1

あなただけ(json_file_path)が必要行う必要があります。それが動作します。以下のコードを試してください。

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

あなたは今、jsonを表示していますが、私は別の値をjsonファイル今私はこれを持っています。 '{' ' "ユーザー名": "TESTUSERNAME"、' ' "パスワード": "ABC123"' '}' が、第二の値が表示されない、**未定義再び言っている** – burq24

+0

は現在動作しています私は別のjsonに要求をリダイレクトしましたが、正しいjsonにリダイレクトするとすべての情報が得られます。ありがとう@Suresh Salloju – burq24

0

あなたはJSONを解析していません。 readFileSyncはファイルを文字列として読み取ります。したがってcontentは、オブジェクトではなくJSONを含む文字列です。

ソリューションは、簡単な使用にJSON.parseです:

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

このソリューションをお試しください。 (主な仕様と同じフォルダに配置されている)Data.jsonで

var testData = require('./Data.json'); 
describe('...', function() { 

    testData.forEach(function (data) { 

     var strUser = data.strUser; 
     var strPass = data.strPass; 

     it('...', function() { 
      <code here> 
     }); 

    }); 

}); 
  • :メインスペックに

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

    はそれが役に立てば幸い:)

  • 関連する問題