2014-10-05 26 views
7

Zaczynam swoją przygodę z Kątomierzem & Jasmine & PhantomJS. To, co chciałem osiągnąć, to używać PhantomJS do uruchamiania testów z ProtractorDemo. Ale zawiodłem i nie wiem dlaczego. Gdzie są dokładne kroki:Konfigurowanie PhantomJs z kątomierzem nie działa

mam zainstalowane kątomierz-demo (https://github.com/juliemr/protractor-demo)

git clone https://github.com/juliemr/protractor-demo.git 
cd protractor-demo 
npm install 

Wtedy mam zainstalowane phantomjs:

npm install --save-dev phantomjs 

Potem Zaktualizowaliśmy konfiguracyjne (na podstawie http://angular.github.io/protractor/#/browser-setup):

capabilities: { 
    'browserName': 'phantomjs', 

    /* 
    * Can be used to specify the phantomjs binary path. 
    * This can generally be ommitted if you installed phantomjs globally. 
    */ 
    'phantomjs.binary.path':'./node_modules/phantomjs/bin/phantomjs', 

    /* 
    * Command line arugments to pass to phantomjs. 
    * Can be ommitted if no arguments need to be passed. 
    * Acceptable cli arugments: https://github.com/ariya/phantomjs/wiki/API-Reference#wiki-command-line-options 
    */ 
    'phantomjs.cli.args':['--logfile=PATH', '--loglevel=DEBUG'] 
} 

Pełny plik konfiguracyjny wygląda następująco:

// Tests for the calculator. exports.config = { seleniumAddress: 'http://localhost:4444/wd/hub', 

    specs: [ 
    'spec.js' ], 

    capabilities: { 
     'browserName': 'phantomjs', 

     /* 
     * Can be used to specify the phantomjs binary path. 
     * This can generally be ommitted if you installed phantomjs globally. 
     */ 
     'phantomjs.binary.path': './node_modules/phantomjs/bin/phantomjs', 

     /* 
     * Command line arugments to pass to phantomjs. 
     * Can be ommitted if no arguments need to be passed. 
     * Acceptable cli arugments: https://github.com/ariya/phantomjs/wiki/API-Reference#wiki-command-line-options 
     */ 
     'phantomjs.cli.args': ['--logfile=PATH', '--loglevel=DEBUG'] } }; 

Potem już wykonywane polecenia z samouczka:

.\node_modules\.bin\webdriver-manager update 

zacząłem WebDriver i serwer internetowy:

.\node_modules\.bin\webdriver-manager start 
npm start 

wyjście z tego polecenia był:

Using the selenium server at http://127.0.0.1:4444/wd/hub 
Server running at http://localhost:3456 

Ostatni krok:

node_modules\.bin\protractor test\conf.js 

i okno inna konsola webdriver-manager forma wyjściowa była:

15:23:10.181 INFO - Executing: [new session: Capabilities [{phantomjs.binary.path=./node_modules/phantomjs/bin/phantomjs, count=1, browserName=phantomjs, phantomjs.cli.args=[--logfile=PATH, --loglevel=DEBUG]}]]) 
15:23:10.192 INFO - Creating a new session for Capabilities [{phantomjs.binary.path=./node_modules/phantomjs/bin/phantomjs, count=1, browserName=phantomjs, phantomjs.cli.args=[--logfile=PATH, --loglevel=DEBUG]}] 
15:23:10.203 INFO - executable: d:\dev\protractor-demo\.\node_modules\phantomjs\bin\phantomjs 
15:23:10.203 INFO - port: 44410 
15:23:10.203 INFO - arguments: [--logfile=PATH, --loglevel=DEBUG, --webdriver=44410, --webdriver-logfile=d:\dev\protractor-demo\phantomjsdriver.log] 
15:23:10.204 INFO - environment: {} 

Ale nic się nie dzieje. Nie widzę wyniku wykonanych testów. Czy jest coś, czego mi brakuje? Kiedy zmieniam przeglądarkę z phantomjs na chrome, widzę wyniki testu.

+0

Wygląda related: [Test kątomierz na phantomjs z wykorzystaniem selenowego wolnostojącego słoika,] (http://stackoverflow.com/q/26096786) –

+0

Dzięki. W każdym razie, czy moje kroki są prawidłowe? Ponieważ później znalazłem próbkę, w której po prostu uruchamiasz PhantomJS jako Remote WebDriver, a kiedy podłączę się do tego sterownika za pomocą seleniumAddress, to działa. Jestem zmieszany. – dragonfly

+0

Nie wiem, nigdy tego nie robiłem. –

Odpowiedz

4

W rzeczywistości nie ma potrzeby uruchamiania:

.\node_modules\.bin\webdriver-manager update 

ani też:

.\node_modules\.bin\webdriver-manager start 

Zamiast tego można uruchomić sterownik duchów za pomocą następującego polecenia (9515 będzie port, w którym sterownik uruchomi się), uruchamiając:

phantomjs --webdriver=9515 

Oprócz tego należy zmodyfikować plik konfiguracyjny, aby kątomierz wiedział po znalezieniu sterownika. W Twoim przypadku, plik konfiguracyjny powinien wyglądać następująco:

exports.config = { 
    seleniumAddress: 'http://localhost:9515', 

    specs: ['spec.js'], 

    capabilities: { 
     'browserName': 'phantomjs', 

     /* 
     * Can be used to specify the phantomjs binary path. 
     * This can generally be ommitted if you installed phantomjs globally. 
     */ 
     'phantomjs.binary.path': './node_modules/phantomjs/bin/phantomjs', 

     /* 
     * Command line arugments to pass to phantomjs. 
     * Can be ommitted if no arguments need to be passed. 
     * Acceptable cli arugments: https://github.com/ariya/phantomjs/wiki/API-Reference#wiki-command-line-options 
     */ 
     'phantomjs.cli.args': ['--logfile=PATH', '--loglevel=DEBUG'] 
     } 
}; 

I wtedy będzie w stanie uruchomić testy uruchamiając:

node_modules\.bin\protractor test\conf.js 
+0

Pomyślnie z tym działam z kątowym-cli – Wungsow