【问题标题】:Load additional CONFIG file with values加载带有值的附加 CONFIG 文件
【发布时间】:2015-06-09 09:51:37
【问题描述】:

我在测试中使用了很多值,例如用户名和密码。

为此,我创建了一个配置文件,我在其中仅将这些数据存储在 JSON 中,它看起来像:

{
    "login": "test",
    "password": "pass",
    "number": "1234",
}

如果我在每个测试文件开始时请求它(一个用于登录,另一个用于其他),它对我有用

我怎样才能加载这个配置文件一次,而不是在每个文件中。 例如,我现在是怎么做的:

var configFile = require('./config.json');

有人可以帮我设置吗?

【问题讨论】:

    标签: javascript selenium testing protractor end-to-end


    【解决方案1】:

    要关注"DRY" principle,请使用您的量角器配置和全局可用的browser 对象:

    • 在您的量角器配置中,“导入”您的配置文件并将其设置为 params 值:

      var config = require("./config.js");
      exports.config = {
          // ...
      
          params: config,
      
          // ...
      }
      
    • 在您的测试中,只需使用browser.params,例如:

      describe('Logging in', function(){
           it('should log in', function(){
               var login = element(by.id("login"));
               login.sendKeys(browser.params.login);
      
               var password = element(by.id("password"));
               login.sendKeys(browser.params.password);
      
               element(by.id("submit")).click();
           });
       });
      

    换句话说,这是“一次导入 - 到处使用”的方法。

    【讨论】:

    • 嗨,alecxe,谢谢您的回答。请你能在第一部分更具体一点(也许提供一些真实的数据示例),我知道我 lod 配置文件但不知道如何做那个 exprt.config 部分:)
    • @Andurit 当然!我假设您知道 protractor 配置的位置。在此配置中,您将找到 exports.config = { 部分。就在它之前,添加一个require 呼叫,如答案中提供的那样。在require() 中,您应该提供指向您的config.json 的路径。
    • 它确实有意义,只是尝试从位于的 protractor.conf.js 中添加 config.json 的路径:'C:\Next\test\angular\e2e\specs'在 'C:\Next' 但 var 'configFile = require('./test/angular/e2e/spec/config.json');'不工作
    • ConfigParser 错误:找不到模块 'test/angular/e2e/spec/config.json'
    • @alecxe 如果我有多个环境和每个环境的不同参数怎么办?
    【解决方案2】:

    您可以简单地将 configFile 用作全局变量并在每个测试中使用它。

    describe('Description', function(){
        var configFile = require('./config.json');
        it('Test1', function(){
            //Consume configFile here
        });
        it('Test2', function(){
            //Consume configFile here
        });
    });
    

    我希望这会有所帮助。

    【讨论】:

    • 您好 DroidArrrh,谢谢您的回答。但我 afriad 这个选项要求将所有测试都放在一个文件中。就我而言,我想尽量避免这种情况。
    猜你喜欢
    • 2017-06-08
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 2018-10-10
    相关资源
    最近更新 更多