2014-04-22 13 views
5

Il mio piano è quello di memorizzare un nome utente e una password come variabili di ambiente di sistema e farne riferimento in un file di configurazione di Angularjs Goniometro. Ho definito le variabili in /etc/environment. Questo è quello che ho provato finora:Come posso utilizzare le variabili di ambiente di sistema nel goniometro di Angularjs?

params: { 
    login: { 
    user: $E2E_USER, 
    pass: $E2E_PASS 
    } 
} 

Ho anche provato questo:

params: { 
    login: { 
    user: process.env.E2E_USER, 
    pass: process.env.E2E_PASS 
    } 
} 

Qualsiasi aiuto sarebbe molto apprezzato!

+0

ho simulato il tuo secondo approccio (utilizzato anche in https://github.com/angular/protractor /blob/master/spec/ciConf.js) e ha funzionato bene - quale errore si incontra usando 'process.env.E2E_USER' ecc.? –

+1

Puoi anche aprire la riga di comando 'node' e controllare la lista che' console.log (process.env) 'ti dà - vedi se' E2E_USER' e 'E2E_PASS' sono realmente presenti nel tuo ambiente. –

+0

'process.env.E2E_USER' è' undefiend'. Quando stampo 'process.env', non vedo' E2E_USER' nell'elenco. Ho definito la variabile in '/ etc/environment', dovrebbe essere altrove? Grazie! – Brendan

risposta

3

ho usato export E2E_USER=username e che ha funzionato.

+1

Potrei chiarire: 'process.env.E2E_USER' funziona. Il comando 'export' in questa risposta imposta semplicemente la variabile d'ambiente E2E_USER. Presumo quando l'OP ha posto la domanda, la variabile non è stata impostata. – jrharshath

2
+0

Quindi dovrei mettere le costanti nel Gruntfile? Non penso di poterlo fare, dal momento che sto memorizzando il Gruntfile nel controllo del codice sorgente e le costanti sono le mie credenziali per qualcosa. – Brendan

+0

@Brendan .. Puoi passare quegli URL di sviluppo/produzione come argomenti per grugnire .. così, che non devi salvare alcuna informazione valida nel controllo sorgente –

2

bisogna usare process.env.YOUR_ENV in NodeJS, così per esempio all'interno onPrepare funzione, params non direttamente all'interno:

exports.config = { 
    onPrepare: function() { 
     //load env variables for testing 
     if (typeof process.env.URL !== "undefined") { 
      browser.baseUrl = process.env.URL; 
      console.log('Base URL = ' +process.env.URL); 
     } 
}, 
params: { ... 
+0

Sto cercando di ottenere lo stesso con angular2 e goniometro, ma senza fortuna. Quando consegno log 'process.env', non vedo nessuna delle variabili di ambiente. Come posso risolvere il mio problema ?? –

Problemi correlati