Rails堆栈中的AngularJS e2e测试:[object Object]没有方法'resumeBootstrap'

时间:2013-05-03 16:03:05

标签: ruby-on-rails angularjs karma-runner

使用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

知道如何让它发挥作用吗?

3 个答案:

答案 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