2

認証が必要なAngularJSアプリケーションがあります。これは、Expressから提供されるより大きなプロジェクトの一部であり、独自のベースパス<base href="/path/to/app/">に存在し/ます。既存のアプリケーションには、すでにラウンドトリップログインがあります。ユーザーは、Angularアプリにアクセスする前にログインする必要があります。testacularを使用したe2eテストを除いて、これは正常に機能します。

サーバーでの認証を無効にすると、e2eテストは問題なく実行されます。例えば:

describe 'protected app', ->

  it 'should display the index', ->
    browser().navigateTo '/path/to/app'
    expect(browser().location().url()).toBe '/'

  it 'etc...'

明らかに、サーバー側の認証では、これは失敗します。最初にログインする必要があります。次のエラーが発生します。

Sandbox Error: Application document not accessible.

問題は、シナリオ内でログインしようとしたときに発生します。

describe 'protected app', ->

  it 'should authenticate', ->
    browser().navigateTo '../login'
    #input('#email').enter('admin@example.com')
    #input('#password').enter('secret')
    #element('button').click()    

  it 'should display the index', ->
    browser().navigateTo '/path/to/app'
    expect(browser().location().url()).toBe '/'

  it 'etc...'

これを実行すると(フォームに入力してクリックするかどうかに関係なく)、ログインページが読み込まれてフリーズします。Testacularは実行を完了することはなく、ログインページでハングするだけです。

Angular / Testacular / e2eテストの理解に欠陥がありますか、それともバグがありますか?

4

1 に答える 1

1

Vojtaは、これはTestacularの問題ではないと言います。問題は、Angularシナリオランナーがページ全体のリロードをサポートしていないことです。

于 2012-11-16T23:58:48.283 に答える