2015-05-20 2 views
6

Мы используем транспортир, чтобы проверить наше угловое приложение переднего конца, которое мы строим.параметр параметра окружающей среды для испытаний транспортира e2e

В настоящее время мы используем browser.get() указать наш environement мы хотим еще раз проверить (локальный: 9000, постановка, UAT), однако я хотел спараметрировать это так, что, когда мы проводим наши тесты с помощью grunt test:e2e можно задать параметр для изменения browser.get() в указанную среду.

Что-то вроде того, что можно позвонить grunt test:e2e NODE_ENV=uat, чтобы протестировать указанную среду.

У кого-нибудь есть понимание того, как это сделать?

ответ

7

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

config: grunt.file.readJSON('config-param.json'), 
protractor: { 
     options: { 
      configFile: "config/e2e.conf.js", // Default config file 
      keepAlive: true, // If false, the grunt process stops when the test fails. 
      noColor: false, // If true, protractor will not use colors in its output. 
      debug: '<%= config.debugger %>', 
      args: { 
       params: '<%= config %>' 
      } 
     }, 
     run: {} 
    }, 

и вы можете получить доступ к параметрам в своих спецификациях. browser.params.fieldName

+0

Я вижу, что я могу поместить' baseUrl: 'в поле params файла grunt, однако у меня есть бегун задачи, который указывает' baseUrl' на использовать? Даже имея возможность вызвать 'browser.params.baseUrl' в моих спецификациях, это не поможет с возможностью запуска тестов, специфичных для моей среды. – user249656

4

Общий подход к решению этой проблемы заключается в использовании baseUrl command-line argument:

protractor --baseUrl='http://localhost:9000' protractor.conf.js 

Или, вы можете установить webdriver.base.url environment variable:

webdriver.base.url=http://localhost:9000 

Вы можете также использовать диспетчер задач (например, grunt и grunt-protractor-runner) и настроить различные задачи для запуска тестов в другой среде, отличной от baseUrl.

+0

Спасибо за это! Я понял, что я могу установить менеджер хрюкать задачи, чтобы иметь что-то вроде: 'еще если (цели ===«e2euat») { возвращения grunt.task.run ([ «чистый: сервер» , 'ENV: все', 'ENV: UAT', 'одновременно: тест', 'инжектор', 'wiredep', 'autoprefixer', 'выразить: Дев', 'транспортира' ]); } '} Однако проблема, которую я не пытаюсь решить, заключается в том, как передать эту задачу в browser.get() в моем файле spec для навигации по« домашнему » – user249656

+0

@ user249656 всякий раз, когда вы используете' browser.get() ', используйте относительно базовых URL-адресов, например 'Browser.get ("index.html")'. – alecxe

+0

Спасибо! Так что я думаю, что трамвай-транспортир-бегун - это маршрут, который я должен брать. К счастью, я заметил, что наш 'Gruntfile.js' уже ссылается на транспортир, где мы указываем файл' protractor.config.js'. Если я укажу 'baseUrl: http: // localhost: 9000' 'в' protractor.config.js', то мы всегда будем ориентироваться на localhost, а не на параметризованную среду. Есть ли способ заставить диспетчер задач обновлять различные «baseUrl»? Я не вижу ничего в документах, которые я прочитал: \ Возможно, способ сказать 'baseUATUrl:'? – user249656

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