2016-06-24 15 views
5

角度コードをテストするために分度器を使用しています。テストは、webdriver-managerでデフォルトで提供されるchromeドライバを使って実行しているときに正常に動作しています。今私はこのテストをサーバー経由で実行する必要があるので、同じテストをphantomjs(ヘッドレスブラウザ)で実行したいと思っています。 phantomjsを介してテストを実行しながら、しかし、私はエラーを取得しています:ファントムジで分度器テストを実行できません

Failed: Angular could not be found on the page URL : retries looking for angular exceeded

confファイルは次のとおりです。

// demo-test.js 
describe('Protractor Demo App', function() { 
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000; 

beforeEach(function() { 
    browser.driver.manage().window().setSize(1280, 1024); 
}); 
it('should have a title', function() { 
    browser.get('URL'); 

    expect(browser.getTitle()).toEqual('Title'); 

}); 

私を助けてください:

exports.config = { 
framework: 'jasmine', 
seleniumAddress: 'http://localhost:4444/wd/hub', 
specs: ['demo-test.js'], 
capabilities: { 
    browserName: 'phantomjs', 
    version: '', 
    platform: 'ANY' 
}; 

デモ-test.jsファイルは次のようになります。私はあなたが間違ってタイムアウトを増やす

sudo apt-get install phantomjs

+1

私は分裂器でphantomJSをお勧めしません。その代わりに、ブラウザ上で仮想ディスプレイを実行するには、サーバー上でXVFB with chromeを使用してみてください。 – martin770

+0

ちょっと@ martin770あなたの提案をありがとう、私はこれを行う方法を見つけることができるドキュメントの任意のリンクを提供できますか? –

答えて

1

経由site公式およびインストールphantomjsからの命令を使用して分度器をインストールしました:

jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000; 

このタイムアウトは、あまりにも長い間実行しないようにジャスミンのテストのためです。設定ファイル分度器するために、これを追加する - あなたは、ページの読み込みを待って、長いページの角度がしたい場合:ここでタイムアウトに関する

getPageTimeout: timeout_in_millis //default 10 sec 
allScriptsTimeout: timeout_in_millis //default 11 sec 

もっと - http://www.protractortest.org/#/timeouts

をまた、あなたが正しいルート要素を指していることを確認します

// CSS Selector for the element housing the angular app - this defaults to 
    // body, but is necessary if ng-app is on a descendant of <body>. 
    rootElement: 'body', 

私はphantomJSに分度器テストを走っお勧めしません、それは本当に異なり、実際のブラウザからの作品、そして時にはあなたは本当のバグをスキップする、またはphantomJSに特有の何かを見つけるかもしれません。

+0

おかげさまで@ Xotabu4、あなたが次にお勧めしますか? –

+0

ほとんどのユーザーがChromeを使用している場合は、chromeまたはfirefoxを使用します。 – Xotabu4

関連する問題