2013-05-25 236 views
4

我想使用KarmaJS(0.9.2)运行我的Jasmine e2e测试。我在Windows 7上使用Google Closure和AngularJS(1.0.7)。当我使用karma start config\karma-e2e.js启动业力时,一切正常(浏览器导航到正确的页面),但它不执行我的测试(停止在浏览器导航到')。AngularJS:使用Karma运行e2e测试

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 manualy bootstraped,我所有的咖啡脚本由编译IDE和我在浏览器控制台或命令行中看到没有错误。那么我该怎么做呢?难道我做错了什么?

谢谢!

回答

6

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

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

+1我刚花了一个小时试图弄清为什么测试没有完成。 –

+0

正确。 “ngScenario不适用于使用angular.bootstrap手动引导的应用程序,您必须使用ng-app指令。” - http://docs.angularjs.org/guide/dev_guide.e2e - 在评论前面的底部。 –