2

这个问题之前好像已经回答了,但是链接已经不存在了,因为睾丸组不存在了。即使我的搜索技能适中,我也无法在 Angular 组中找到任何关于跳过测试的参考。

我在 config/karma-e2e.js 中的配置文件:

basePath = '../';

files = [
  JASMINE, JASMINE_ADAPTER,
  'app/assets/javascripts/v2/vendor/angular.1.0.5.js',
  'app/assets/javascripts/v2/vendor/angular-*.js',
  'karma/lib/angular/angular-scenario.js',
  'karma/lib/angular/angular-mocks.js',
  'app/assets/javascripts/v2/vendor/*.js',
  'app/assets/javascripts/v2/services/*.js',
  'app/assets/javascripts/v2/controllers/*.js',
  'app/assets/javascripts/v2/*.js',
  'karma/e2e/*.js'
];

autoWatch = true;

browsers = ['Chrome'];

singleRun = true;

proxies = {
  '/': 'http://localhost:3000/'
};

junitReporter = {
  outputFile: 'test_out/e2e.xml',
  suite: 'e2e'
};

我的应用程序在(rails)端口 3000 上提供服务。我的测试尽可能简单。它看起来像这样:

'use strict';

describe("A suite", function() {
  beforeEach(function() {
    browser().navigateTo('/');
  });

  it("contains spec with an expectation", function() {
    expect(true).toBe(true);
  });
});

这个测试被跳过了!

[2013-03-30 22:35:28.945] [WARN] config - "/" is proxied, you should probably change urlRoot to avoid conflicts
INFO [karma]: Karma server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 26.0 (Mac)]: Connected on socket id GRDVn96Wxr7xEzxe8XjU
Chrome 26.0 (Mac): Executed 0 of 1 (skipped 1) SUCCESS (3.771 secs / 0 secs)

即使我使用 ddescribe 或 iit 来尝试强制运行它,我仍然会被跳过。上一个问题引用的错误是什么?

我正在使用 karma 0.8.0 & angular-scenario 1.0.5 。我能够成功地从angular-seed运行 e2e 测试,所以我完全感到困惑。任何帮助,将不胜感激。谢谢。

4

2 回答 2

5

您应该从 JASMINE 运行器更改为 ANGULAR_SCENARIO 运行器。

当您运行 E2E 测试时,测试运行器将连接到您正在运行的站点并依靠它来为被测的正确应用程序提供服务。它连接到应用程序各个部分的位置可以由proxies配置控制。您需要为 Karma 提供的唯一另一件事是场景运行器和测试本身。

注意:即使在 angular-seed 中, e2e 测试单元测试也有不同的配置。请注意 e2e 配置中 files 数组的配置:

files = [
  ANGULAR_SCENARIO,
  ANGULAR_SCENARIO_ADAPTER,
  'test/e2e/**/*.js'
];
于 2013-03-31T11:45:22.227 回答
1

现在不赞成在设置中使用此功能:

...
frameworks: ["ng-scenario"],
...

您还需要通过以下方式安装它:

npm install karma-ng-scenario
于 2014-01-10T14:37:54.093 回答