2014-04-03 55 views
4

我正在使用protractor(使用grunt-protractor-runner來運行我的E2E Angular測試),但我無法讓PhantomJS自動啓動。量角器不會自動啓動PhantomJS

我量角器的配置是這樣的:

exports.config = { 
    //seleniumAddress: "http://localhost:9515", 
    specs: [ 
     'static_src/test/spec/*.js' 
    ], 


    capabilities: { 
     'browserName': 'phantomjs', 
     'phantomjs.binary.path':'./node_modules/phantomjs/bin/phantomjs', 
     'phantomjs.cli.args':['--logfile=phantom.log', '--loglevel=DEBUG'] 
    } 
} 

我的理解是,通過這種結構protractor會自動旋轉起來PhantomJS實例(上phantomjs.binary.path找到),對其運行測試,使用webdriver的直接通信協議(因此不需要Selenium服務器),然後停止PhantomJS實例。

鑑於此,

  1. 就是我上面的預期行爲描述?
  2. 有什麼我需要添加到配置,使之發生?
+0

量角器的主要目標與真正的瀏覽器與webdriver測試。所以我不認爲使用phantomjs是一個好方法。 Phantomjs是單元測試的完美選擇,但使用硒的量角器非常適合在真實瀏覽器中進行端到端測試。有一個演示設置:https://github.com/angular/angular-seed –

+0

PhantomJS是一個真正的瀏覽器。它只是有點舊(與Chrome 13相比),除了日誌或屏幕截圖之外,您什麼都看不到。 –

回答

1

量角器總是需要硒獨立服務器。您可以使用webdriver-manager啓動它,並參考您的protract.conf.js中的地址,您可以指定jar的位置,量角器將爲您啓動它。

請參考jar在您的配置,例如:

seleniumServerJar: 
    'node_modules/selenium-server/lib/runner/selenium-server-standalone-2.38.0.jar' 

使用這種方法,你不必擔心硒服務器啓動,但它是一個慢一點。因此,如果您需要經常重新運行測試,則將其作爲獨立運行起來會更快,獨立於量角器。

+0

您可以獲取有關此http://protractorsupport.blogspot.in/2015/05/protractor-on-phantomjs-install.html?m=1 – Innovation

+0

的完整信息當不使用無頭瀏覽器(例如'PhantomJS')時,可以使用'directConnect'(https://github.com/angular/protractor/blob/master/docs/referenceConf.js#L67-L70,一般體系結構:http://angular.github.io/protractor/#/infrastructure )繞過Selenium並直接連接到'ChromeDriver'或'FirefoxDriver'。 IE當然不支持 - 那裏必須指定'directConnect:false',並且在測試開始時,Selenium standalone的一個新實例將被剝離。 – Dr1Ku