1

我有一个在一个端口上运行的门户应用程序 - http://localhost:10039。我正在尝试对单个 Ember.js 应用程序进行单元测试,这些应用程序通过 portlet 加载到 Portal 应用程序中。

我想做的是让这些 QUnit 测试针对完整的应用程序运行,该应用程序在我提到的另一个端口上运行。然而,Karma 似乎不喜欢在与运行应用程序的端口不同的端口上运行测试套件。

例如:

test('Page loads in browser', function() {
  visit('/login').then(function() {
    ok(exists('#login-form'), 'Page loaded successfully');
  });
});

...在端口 9876 上成功启动 Karma,但结果...

Page loaded successfully@ 42 ms
Expected: true
Result: false
Diff: true false 
Source: 
    at http://localhost:9876/absolute/Users/me/Sites/app/node_modules/qunitjs/qunit/qunit.js:1933:13
    at http://localhost:9876/base/tests/unit-tests.js:9:8
    at isolate (http://localhost:9876/base/bower_components/ember/ember.js:36720:15)
    at http://localhost:9876/base/bower_components/ember/ember.js:36703:16
    at tryCatch (http://localhost:9876/base/bower_components/ember/ember.js:45817:16)
    at invokeCallback (http://localhost:9876/base/bower_components/ember/ember.js:45829:17)

是否可以在 上运行我的测试套件http://localhost:9876,并让它针对另一个网站/端口运行测试http://localhost:10039

我能得出的最接近答案的是Karma proxies,尽管代理似乎没有效果。Karma 仍在针对与其自身端口相关的链接进行测试9876

我想补充一点,如果只能在其他地方完成——Jasmine、Mocha 等,我对其他测试框架持开放态度。

谢谢!

4

1 回答 1

0

karma 用于运行单元测试,因此代码将加载到 karma 客户端 (localhost:9876) 并在那里执行测试用例。

如果您计划使用您的门户应用程序运行某些端到端测试,您可以考虑使用 selenium 等替代方案。事实上,您上面的测试(测试是否成功加载页面)非常适合 selenium。

于 2015-04-02T23:22:01.177 回答