使用Testacular和AngularJs测试Rails应用程序

时间:2013-01-30 17:27:22

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

我正在尝试使用angular e2e设置testacular以测试我的rails应用程序。 我无法通过最基本的测试。我的Rails应用正在运行。

testacular.config.js

basePath = '.';
files = [
  JASMINE,
  JASMINE_ADAPTER,
  ANGULAR_SCENARIO,
  ANGULAR_SCENARIO_ADAPTER,
  '*_spec.js'
];
exclude        = [];
reporters      = ['progress'];
port           = 8080;
runnerPort     = 9100;
colors         = true;
logLevel       = LOG_INFO;
autoWatch      = true;
browsers       = ['Chrome'];
captureTimeout = 5000;
singleRun      = false;
proxies        = { '/': 'http://localhost:3000/' };

test_spec.js

describe('Home Page', function() {
  beforeEach(function() {
    browser().navigateTo('/');
  });
  it('should have h2', function() {
    expect(element('body').html()).toContain('Explore')
  });
});

输出:我正在选择正文,这样你就可以看到它不是我的网页,而是真正的iframe。我想我会在这里看到我的真实页面的主体。

expected "Explore" but was "\n  <h1 id=\"title\" class=\"offline\">Testacular - starting</h1>\n  <ul id=\"browsers\"></ul>\n\n  <iframe id=\"context\" src=\"about:blank\" width=\"100%\" height=\"100%\"></iframe>\n\n  <script src=\"socket.io/socket.io.js\"></script>\n  <script src=\"testacular.js\"></script>\n\n\n"

1 个答案:

答案 0 :(得分:1)

在testacular.config.js文件数组中,

JASMINE,
JASMINE_ADAPTER,

ANGULAR_SCENARIO,
ANGULAR_SCENARIO_ADAPTER,    

不应该一起使用。 第一套是针对Jasmine的规格, 第二组用于e2e测试。 它们是相互排斥的。

在您的情况下,您正在进行e2e测试,因此文件数组应为:

files = [
  ANGULAR_SCENARIO,
  ANGULAR_SCENARIO_ADAPTER,
  '*_spec.js'
];

另见: https://github.com/testacular/testacular/issues/66