2015-05-20 17 views
6

Utilizziamo il goniometro per testare la nostra app angolare di front end che stiamo costruendo.impostazione parametro ambiente per i test e2e del rapportatore

Attualmente stiamo usando browser.get() per specificare il nostro environement vogliamo provare di nuovo (localhost: 9000, messa in scena, SVS) tuttavia Sono voler parametrizzare questo in modo che quando si corre nostri test utilizzando grunt test:e2e possiamo specificare un parametro al cambiamento il browser.get() in un ambiente specificato.

Qualcosa come poter chiamare grunt test:e2e NODE_ENV=uat per testare l'ambiente specificato.

Qualcuno ha qualche idea su come fare questo?

risposta

7

È possibile passare qualsiasi numero di argomenti al rapportatore È necessario passare i parametri all'interno dell'attività del goniometro nel file grunt. Ecco piccolo frammento

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: {} 
    }, 

ed è possibile accedere ai parametri nelle specifiche come. browser.params.fieldName

+0

Vedo che posso mettere' baseUrl: 'nel campo params del file grunt, tuttavia posso avere un task runner che specifica il' baseUrl' per uso? Anche essere in grado di chiamare 'browser.params.baseUrl' nelle mie specifiche, questo non aiuterà a essere in grado di eseguire test specifici per il mio ambiente. – user249656

4

Il modo più comune per affrontare il problema è quello di utilizzare baseUrl command-line argument:

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

In alternativa, è possibile impostare il webdriver.base.url environment variable:

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

È anche possibile utilizzare un task manager (ad esempio grunt e grunt-protractor-runner) e configurare diverse attività per l'esecuzione di test in un ambiente diverso con impostazione diversa baseUrl s.

+0

Grazie per quello! ho capito che posso impostare il task manager grugnito avere qualcosa di simile: 'else if (target === 'e2euat') { ritorno grunt.task.run ([ 'pulito: server' , 'env: tutto', 'env: UAT', 'concurrent: test', 'iniettore', 'wiredep', 'autoprefixer', 'espresso: dev', 'goniometro' ]); } Tuttavia il problema che non sto cercando di risolvere è come passare in questa attività al browser.get() nel mio file delle specifiche per quando si naviga "home" – user249656

+0

@ user249656 ogni volta che si utilizza 'browser.get() ', usa relativo agli url di base, es 'Browser.get ("index.html")'. – alecxe

+0

Grazie! Quindi penso che il grint-goniometro-runner sia la strada che dovrei prendere. Fortunatamente, ho notato che il nostro 'Gruntfile.js' sta già facendo riferimento a goniometro dove viene specificato il file' protractor.config.js'. Se si specifica 'baseUrl:" http: // localhost: 9000 "' in 'protractor.config.js', passeremo sempre a localhost piuttosto che a un ambiente parametrizzato. C'è un modo per ottenere il task manager per aggiornare i diversi 'baseUrl'? Non vedo nulla nei documenti che ho letto: \ Forse un modo per dire 'baseUATUrl:'? – user249656

Problemi correlati