【问题标题】:Jasmine/Karma test: browser is not definedJasmine/Karma 测试:未定义浏览器
【发布时间】:2013-04-09 16:28:57
【问题描述】:

如果这个测试:

'use strict'

describe('application', function() {
    it('should login', function() {
        browser().navigateTo('/');
        expect('111').toBe('111');
    });
});

包含"browser" 行,结果为:

Chrome 26.0 (Windows) application should login FAILED
    ReferenceError: browser is not defined
        at null.<anonymous> (...../test/js/e2e/tests/test.js:6:9)
Chrome 26.0 (Windows): Executed 1 of 1 (1 FAILED) (0.359 secs / 0.004 secs)

但如果没有这一行,测试会成功。

人们建议包含angular-scenario.js,但这会破坏测试

expect('111').toBe('222');

被评估为真。

怎么办?

【问题讨论】:

标签: testing jasmine karma-runner


【解决方案1】:

您需要让应用程序的服务器与 karma runner 一起运行。所以使用 Node.js:

node app.js

另外,请确保您在 karma 配置中更改 urlRoot 属性,使其不会与您的应用冲突,是的,您需要 angular-scenario.js

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

urlRoot = '/__karma/';

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

【讨论】:

  • urlRoot 选项通常不会在其他地方提及,但非常重要。
【解决方案2】:

我也遇到过这个问题。我相信您只能在 beforeEach(); 中调用 browser();试试这个:

'use strict'

describe('application', function() {

    beforeEach(function(){
        browser().navigateTo('/');
    });

    it('should login', function() {
        expect('111').toBe('111');
    });

});

【讨论】:

    猜你喜欢
    • 2014-05-01
    • 2018-10-20
    • 2015-06-29
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 2015-03-28
    相关资源
    最近更新 更多