0

让 AngularJS/Karma 端到端测试环境与 Rails 后端一起工作似乎相当困难。

我安装了 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)

场景.js 来自https://github.com/angular/angular-seed

知道如何使它工作吗?

4

3 回答 3

2

尝试

it('should redirect to /', function() {
  browser().navigateTo("/");
  expect(browser().window().path()).toBe("/");
});
于 2013-07-07T21:31:52.143 回答
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

于 2013-05-07T02:57:57.247 回答
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'
];

希望这会有所帮助。

于 2013-05-03T19:43:56.977 回答