从json文件中读取参数以进行量角器测试

时间:2017-07-31 21:10:14

标签: node.js typescript protractor

我已经注释掉了尝试读取文件的行,有没有办法可以从protractor.config.ts内的文件中检索值而不必作为命令行参数传递?

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"
}

1 个答案:

答案 0 :(得分:3)

您是否尝试过按如下方式添加import语句:

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;
}

如上所示,您导入的文件将完美无缺。