2014-06-14 10 views
6

Stavo cercando di passare attraverso il tutorial nell'angolare-phonecat di angularjs.org. Nella stetp tre sto ricevendo errori per test end-to-end con goniometro. ecco il codice di errore.Test end-to-end con goniometro che genera l'errore

Using ChromeDriver directly... 
Cannot read property 'matcherFn_' of undefined 
[launcher] Runner Process Exited With Error Code: 1 

npm ERR! [email protected] protractor: `protractor test/protractor-conf.js` 

npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] protractor script. 
npm ERR! This is most likely a problem with the angular-phonecat package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  protractor test/protractor-conf.js 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls angular-phonecat 
npm ERR! There is likely additional logging output above. 
npm ERR! System Windows_NT 6.2.9200 
npm ERR! command "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodej 
s\\node_modules\\npm\\bin\\npm-cli.js" "run" "protractor" 
npm ERR! cwd c:\angular-phonecat\angular-phonecat 
npm ERR! node -v v0.10.28 
npm ERR! npm -v 1.4.9 
npm ERR! code ELIFECYCLE 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  c:\angular-phonecat\angular-phonecat\npm-debug.log 
npm ERR! not ok code 0 

Cosa; sta andando storto qui?

+0

eseguire 'npm install' o' npm update' nella directory, sembra un file danneggiato – maurycy

risposta

3

Il problema sembra essere causato dall'ultima versione 1.0.0 di minijasminenode. Come soluzione temporanea questo hack ha funzionato:

  • modificare node_modules/goniometro/package.json e cambiare la dipendenza minijasminenode a < 1.0.0 in modo che ora recita così:

"minijasminenode ":" < 1.0.0" ,

  • rimuovere la directory minijasminenode:

rm -r node_modules/goniometro/node_modules/minijasminenode

  • reinstallare i moduli necessari: node_modules

cd/goniometro & & npm installare

Ora i test e2e devono essere eseguiti. C'è probabilmente un modo più aggraziato per raggiungere questo obiettivo.

Vedi anche https://github.com/angular/protractor/issues/931

2

risposta di Andrew funziona per me. Grazie Andrew.

A proposito, ho anche cambiato "browserName": "chrome" in "browserName": "firefox", poiché non è stato installato chrome nella mia macchina Linux. Quindi funziona.

+1

più 1 per l'aggiunta di firefox – Venkat

+2

Questo dovrebbe essere un commento. Non una risposta –

0

Aggiunta di Firefox ha fatto i test eseguiti su goniometro mie finestre 7, dove, come su Mac Chrome è stato funzionando benissimo, ecco il test completo/file di goniometro-conf.js

exports.config = { 
    allScriptsTimeout: 11000, 

    specs: [ 
    'e2e/*.js' 
    ], 

    capabilities: { 
    'browserName': 'firefox' 
    }, 

    firefoxOnly: true, 

    baseUrl: 'http://localhost:2000/', 

    framework: 'jasmine', 

    jasmineNodeOpts: { 
    defaultTimeoutInterval: 30000 
    } 
}; 
+0

+1 per questo ... cosa succede se voglio utilizzare IE tutte le versioni come browserName: 'internet explorer' ... che cosa dovrebbe sostituire Internet Explorer sopra per ospitare il server di selenio su browser IE (8+)? Ho fatto riferimento a questo https://code.google.com/p/selenium/wiki/DesiredCapabilities –

0

stavo correndo in un simile problema indipendentemente dalla soluzione pubblicata che ho trovato ovunque. Mentre gestisco la maggior parte dei miei progetti tramite XAMPP, ho scoperto che il mio problema era dovuto al fatto che la porta era stata impostata erroneamente sulla pagina di configurazione.

\ test \ goniometro-config.js

baseUrl: 'http://localhost:8383/',  <-- Altered to suit xampp localhost port 

è stato precedentemente

baseUrl: 'http://localhost:8000/', 

Spero che questo può aiutare gli altri troppo.

0

Ho provato tutte le soluzioni ma ho ancora ricevuto degli errori. Cambiare la versione del goniometro nel file package.json principale in "~ 0.20.1" in modo che leggesse "protractor": "~0.20.1", e che esegua la riga di comando mentre l'amministratore ha funzionato per me.

Dopo averlo eseguito per la prima volta, genera un errore ChromeDriver. Ho fissato questo semplicemente sostituendo la proprietà chromeOnly: True nel file goniometro-conf.js con il percorso completo del driver stesso, nel mio caso: chromeDriver: 'F:/Documents/Angular/angular-phonecat/node_modules/protractor/selenium/chromedriver_2.9.zip'

Non particolarmente sicuro se utilizzando una versione precedente è una buona idea però.

Problemi correlati