AngularJS: 使用Karma运行端到端测试

4
我想使用KarmaJS(0.9.2)运行我的Jasmine e2e测试。我在Windows 7上使用带有AngularJS(1.0.7)的Google Closure。当我使用karma start config\karma-e2e.js启动karma时,一切都正常工作(浏览器导航到正确的页面),但它不执行我的测试(停留在“浏览器导航到”的位置)。 config\karma-e2e.js文件:
basePath = '../';

frameworks = ['ng-scenario'];

files = [
  'tests/e2e/**/*.js'
];

autoWatch = true;

singleRun = false;

browsers = ['Chrome'];

urlRoot = '/__karma/';

proxies = {
    '/': 'http://localhost:8080/'
}

plugins = [
    'karma-ng-scenario'
    'karma-chrome-launcher'
]

测试源代码(tests\e2e\scenarios.coffee)为:

describe 'Intro page view', ->

  it 'has hello world message', ->
    browser().navigateTo '/app/client/'
    expect(element('#text').text()).toBe 'Hello World'

我正在使用html5Mode路由,手动使用angular.bootstrap引导了angular,在浏览器控制台或命令行中没有看到任何错误。那么我应该怎么做?我做错了什么吗?
谢谢!
1个回答

6

我解决了这个问题。似乎angular scenario需要ng-app指令,这至少很奇怪(或者是一个错误)。因此,在索引页调用App.bootstrap()后,我在body中添加了ng-app属性。现在一切都正常运作。

<script type="text/javascript">
App.bootstrap();
document.body.setAttribute('ng-app', 'App');
</script>

+1 我刚刚花了一个小时试图弄清楚为什么测试没有完成。 - Joseph Yaduvanshi
正确。"ngScenario不适用于手动使用angular.bootstrap引导的应用程序。您必须使用ng-app指令。" - http://docs.angularjs.org/guide/dev_guide.e2e-testing,在评论之前的底部。 - J.P.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接