2014-12-12 14 views
5

Sono super confuso su come dire a Protractor e Selenium da dove servire la mia applicazione per i test di integrazione (eseguendo Gulp su Jenkins).Goniometro e selenio in Gulp e Jenkins

Questa è la mia configurazione goniometro:

exports.config = { 
    seleniumServerJar: '../node_modules/protractor/selenium/selenium-server-standalone-2.44.0.jar', 

    multiCapabilities: [{ 
     browserName: 'chrome' 
    }], 

    baseUrl: 'http://127.0.0.1:9000/', 

    rootElement: 'html', 

    jasmineNodeOpts: { 
     showColors: true, 
     defaultTimeoutInterval: 30000 
    } 
}; 

Ma ecco il problema: http://127.0.0.1:9000 non esiste. Devo prima distribuire e poi fare i test di integrazione o può essere fatto prima della distribuzione? Perché se la distribuzione deve essere eseguita per prima, non ha alcun senso per me dove collocarlo nel sistema di build. Perché allora questo non è e non può essere parte di un sistema di costruzione. Allora, dove arriva CI?

risposta

6

Hai bisogno di fare questo in più fasi/attività con l'aiuto di gulp:

  • avviare un server di selenio (se si utilizza un server di selenio locale)
  • avviare un server Web, vedere gulp-webserver (ti mancava questo passaggio)
  • corsa goniometro test
  • arresto di un server web
  • arresto di un server di selenio
+0

Grazie, ha funzionato. Tuttavia, 'gulp-connect' è deprecato a favore di' gulp-webserver', quindi l'ho usato al suo posto. E 'gulp-serve' non funziona. E questo non è menzionato da nessuna parte in nessun tutorial, nemmeno quello ufficiale. Come tutti sappiamo tutto. – Alex

+0

@Alex wow, molte grazie per la condivisione, aggiornerò la risposta in modo appropriato. – alecxe

0

Un esempio completamente funzionante di tale configurazione può essere trovato su angolare semi progetto. https://github.com/angular/angular-seed

Sono riuscito utilizzare con successo questo esempio per utilizzare protractor test nel mio progetto GitHub: https://github.com/atais/angular-eonasdan-datetimepicker

quindi si può utilizzare sia per aiutarvi.


Fondamentalmente il modo più semplice è:

  1. run http-server come demone
  2. test run gulp
  3. gestire tutto da NPM (package.json)

codice completo è disponibile qui: https://stackoverflow.com/a/41983565/1549135