AngularJS:使用Karma运行e2e测试

Tha*_*ash 4 testing end-to-end angularjs karma-runner

我想用KarmaJS(0.9.2)运行我的Jasmine e2e测试.我在Windows 7上使用带有AngularJS(1.0.7)的Google Closure.当我开始使用karma start config\karma-e2e.js一切正常工作时(浏览器导航到正确的页面)但它不执行我的测试(停止在'浏览器导航到').

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'
]
Run Code Online (Sandbox Code Playgroud)

测试源(tests\e2e\scenarios.coffee)是:

describe 'Intro page view', ->

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

我正在使用html5Mode路由,angular使用bootstraped angular.bootstrap,所有我的咖啡脚本都是由IDE编译的,我在浏览器控制台或命令行中看不到任何错误.那我该怎么办呢?难道我做错了什么?

谢谢!

Tha*_*ash 6

我解决了这个问题.似乎角度场景需要ng-app指令,这至少是奇怪的(或者它是一个bug).所以我在索引页面上调用App.bootstrap()之后将ng-app属性添加到body.现在一切都很好.

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