使用Rails后端使用AngularJS / Karma端到端测试环境似乎很难。
我安装了Karma并使用以下配置文件运行:
basePath = '../';
files = [
ANGULAR_SCENARIO,
ANGULAR_SCENARIO_ADAPTER,
'test/e2e/**/*.js'
];
autoWatch = false;
browsers = ['Chrome'];
// singleRun = true;
proxies = {
'/': 'http://local.mywebsite.com:3000/'
};
urlRoot = 'e2e';
junitReporter = {
outputFile: 'test_out/e2e.xml',
suite: 'e2e'
};
http://local.mywebsite.com:3000/是我的rails应用程序。
我尝试了一个非常简单的测试:
it('should redirect to /', function() {
expect(browser().location().url()).toBe("/");
});
但是我遇到了以下错误:
http://localhost:9876/base/test/e2e/scenarios.js:8:5
TypeError: Object [object Object] has no method 'resumeBootstrap'
at HTMLIFrameElement.<anonymous> (http://localhost:9876/adapter/lib/angular-scenario.js:26285:27)
at HTMLIFrameElement.jQuery.event.dispatch (http://localhost:9876/adapter/lib/angular-scenario.js:3064:9)
at HTMLIFrameElement.elemData.handle.eventHandle (http://localhost:9876/adapter/lib/angular-scenario.js:2682:28)
at k (http://connect.facebook.net/en_US/all.js:48:745)
其中scenario.js来自https://github.com/angular/angular-seed。
知道如何让它发挥作用吗?
答案 0 :(得分:2)
尝试
it('should redirect to /', function() {
browser().navigateTo("/");
expect(browser().window().path()).toBe("/");
});
答案 1 :(得分:1)
我会得到最新版本的角度场景转轮。你可以在
找到不稳定的版本http://code.angularjs.org/1.1.4/angular-scenario.js
和
的稳定版本http://code.angularjs.org/1.0.6/angular-scenario.js
然后,请务必更新您的业力配置以使用最新的场景运行器
files = [
'path/to/angular-scenario.js',
ANGULAR_SCENARIO_ADAPTER,
'test/e2e/**/*.js'
];
希望这有帮助。
答案 2 :(得分:1)
上述解决方案是正确的。此链接涵盖了问题:https://github.com/karma-runner/karma/issues/470
我在运行优秀示例时遇到了同样的问题:http://www.yearofmoo.com/2013/01/full-spectrum-testing-with-angularjs-and-testacular.html
如果您开始使用,这是一个很好的资源,但您需要从testacular更新到karma并将angularjs更新为1.0.6