6

我遇到了一段时间无法解决的问题,并且非常沮丧,因为我不知道自己做错了什么。:) 任何帮助深表感谢。我也在我的应用程序中使用 requirejs。这基本上就是我想要构建的;https://github.com/Cengizism/base

当我尝试开始我的 e2e 测试时,我在控制台上得到了这个;

INFO [karma]: Karma v0.10.0 server started at http://localhost:8080/_karma_/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 28.0.1500 (Mac OS X 10.8.4)]: Connected on socket id n-0AVRliCogs2nWBfgDz
Chrome 28.0.1500 (Mac OS X 10.8.4): Executed 0 of 0 ERROR (0.208 secs / 0 secs)

我的配置文件如下所示;

module.exports = function(karma) {
    'use strict';

    karma.set({
        frameworks: ['jasmine', 'ng-scenario'],

        files: [
          'app/vendors/angular-scenario/angular-scenario.js',
          'test/e2e/*.js'
        ],

        basePath: '',

        exclude: [],

        reporters: ['progress'],

        port: 8080,

        runnerPort: 9100,

        colors: true,

        logLevel: karma.LOG_INFO,

        autoWatch: true,

        browsers: ['Chrome'],

        captureTimeout: 5000,

        singleRun: false,

        proxies: {
          '/': 'http://localhost:9000/'
        },

        urlRoot: '/_karma_/',

        plugins: [
          'karma-jasmine',
          'karma-ng-scenario',
          'karma-chrome-launcher',
          'karma-firefox-launcher',
          'karma-phantomjs-launcher'
        ]
    });
};

最后是规范文件;

describe('Simple E2e Test', function()
{
    it('Should open the front page and check', function()
    {
        browser().navigateTo('/#/partial1');

        sleep(1);

        expect(element('#test').html()).toEqual('Hi testUser1');
    });
});
4

5 回答 5

12

也许这可以帮助你:

要修复它,应在 karma.conf.js 中包含以下行

排除:['app/lib/angular/angular-scenario.js'],

来源:https ://github.com/angular/angular-phonecat/issues/71

于 2013-10-15T15:25:28.223 回答
4

我对此也不是很清楚,但是在遇到这个问题后,我从加载中删除了文件 angular-scenario 并且能够让测试运行。我认为问题在于单元测试和 e2e 测试配置之间的区别。

于 2013-08-07T16:09:46.180 回答
3

我有同样的错误,一旦我开始添加一些测试,它就消失了。错误是否可能只是意味着没有任何测试存在?

于 2015-03-31T14:16:24.783 回答
0

这可能是由于您在 files [] 中添加的相对路径可能是错误的。我有同样的错误,之后它工作正常!

于 2015-03-10T20:25:43.023 回答
0

就我而言,仅 karma 使用的 shim 文件中的模块格式错误。根据此处找到的文档,我将格式更改为“注册”以支持 SystemJS 模块。

System.config({
    packages: {
        'base/dist/client': {
            warnings: true,
            defaultExtension: 'js',
            format: 'register',
            map: { }
        }
    }
});

这就是 TS 输出的样子。我必须假设这些测试被包装为系统模块,所以它们没有正确加载。换句话说,错误是由于没有运行测试造成的。

System.register(['angular2/testing', "./data-pipe"], function(exports_1) {
    var testing_1, data_pipe_1;
    return {
        setters:[
            function (testing_1_1) {
                testing_1 = testing_1_1;
            }
        ]

              // yada, yada, yada..

        }
    }
});
于 2016-03-06T21:23:54.883 回答