我有一个需要身份验证的 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 测试的理解是否存在缺陷,或者可能是错误?