2015-06-09 2 views
1

Я использую значения лота для моего теста, такие как имя пользователя и пароль.Загрузите дополнительный файл CONFIG со значениями

Для этого я создал конфигурационный файл, в котором будут храниться только эти данные в формате JSON, это выглядит следующим образом:

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

Это работает для меня, если я прошу его в начале каждого тестового файла (один файл для логин, другой для чего-то еще)

Как загрузить этот файл конфигурации один раз, а не в каждый файл. Пример, как я делаю сейчас:

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

Может кто-нибудь мне помочь в установке этого?

ответ

2

Чтобы следовать "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(); 
        }); 
    }); 
    

Другими словами, это подход «Импорт один раз - используйте всюду».

+0

Hi alecxe, Благодарим вас за ответ. Пожалуйста, можете ли вы быть более конкретным в первой части (возможно, представить пример реальных данных), я понимаю, что я lod конфигурационный файл, но не знаю, как это сделать exprt.config part :) – Andurit

+0

@Andurit Конечно! Я предполагаю, что вы знаете, где находится ваш конфигуратор 'protractor'. В этой конфигурации вы найдете 'export.config = {' part. Перед этим добавьте запрос 'require', как указано в ответе. Внутри 'require()' вы должны указать путь к вашему 'config.json'. – alecxe

+0

это имеет смысл, просто пытается добавить путь к config.json, который находится в: 'C: \ Next \ test \ angular \ e2e \ specs' из protractor.conf.js, который находится в 'C: \ Next ', но var' configFile = require ('./ test/angular/e2e/spec/config.json'); ' не работает – Andurit

0

Вы можете просто использовать configFile как глобальную переменную и использовать ее в каждом из ваших тестов.

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

Надеюсь, это поможет.

+0

Привет, DroidArrrh, благодарю вас за ответ. Но мне нужно, чтобы этот параметр имел все тесты в одном файле. И в моем случае я хотел бы попытаться избежать этого. – Andurit

Смежные вопросы