2017-07-31 57 views
2

我已經註釋了試圖讀取文件的行,有沒有一種方法可以從protractor.config.ts中的文件中檢索值,而不必通過命令行參數傳遞?從量角器測試的JSON文件讀取參數

protractor.config.ts

import { } from 'jasmine'; 
import { Config } from 'protractor'; 

//import fs = require('fs'); // Cannot find module 'fs' 
//import param1 = require('test/e2e/param1.json'); // Cannot find module 'test/e2e/param1.json' 
//import param2 = require('test/e2e/param2.json'); // Cannot find module 'test/e2e/param2.json' 

export let config: Config = { 
    rootElement: 'my-app', 
    framework: 'jasmine', 
    capabilities: { 
    browserName: 'chrome' 
    }, 
    specs: ['test/e2e/**/*.js'], 
    seleniumAddress: 'http://localhost:4444/', 
    params: { 
    param1: '13bf8265-06d6-45c3-97fc-0d6da7b6b597', 
    param2: '14490027-e55b-4739-a5a9-5c091c5d4a72' 
    } 
}; 

測試/ E2E/param1.json:

{ 
    "param1": "13bf8265-06d6-45c3-97fc-0d6da7b6b597" 
} 

測試/ E2E/param2.json:

{ 
    "param2": "14490027-e55b-4739-a5a9-5c091c5d4a72" 
} 
+0

如果您的意思是從protractor.config.js本身獲取值,那麼您可以使用'browser.params.param1' –

回答

3

您是否嘗試過加入進口報表如下:

import * as file1 from './test/e2e/param1.json' 
import * as file2 from './test/e2e/param2.json' 
console.log(file1.param1) 

如果您看到一個錯誤,指出:Cannot find module 'test/e2e/param1.json' 那麼您需要創建/更新您的TypeScript定義|聲明文件,請參閱docs

將以下內容添加到您的定義中|聲明文件:

declare module "*.json" { 
    const value: any; 
    export default value; 
} 

之後,您的文件導入如上所示將完美工作。