空测试套件 - 使用WebStorm 8运行Karma / jasmine测试

时间:2014-06-10 11:12:23

标签: angularjs unit-testing jasmine webstorm karma-runner

我在Webstorm 8中运行测试时遇到问题,这是我的conf文件:

这是我的AngularJS控制器:

angular.module('monApp').controller('DashboardCtrl', [
    '$scope', function ($scope) {
        'use strict';

        $scope.foo = 'bar';
    }
]);

我的测试文件:

describe('Controller: DashboardCtrl', function () {
    'use strict';

    var DashboardCtrl,
        scope;

    beforeEach(module('monApp'));

    beforeEach(inject(function ($controller, $rootScope) {
        scope = $rootScope.$new();
        DashboardCtrl = $controller('DashboardCtrl', {
            $scope : scope
        });
    }));

    it('dashboard should be defined', function () {
        expect(scope.foo).toBeDefined();
        expect(scope.foo).toBe('bar');
    });
});

这些非常简单,我按照许多教程的步骤,首先安装了节点,然后用 npm install 安装karma,当我用 karma启动karma启动my.conf.js < / strong>测试通过,但它显示空测试套件。

我确切地说,在我的项目中,我只有5个文件:

  • angular.js
  • 角mocks.js
  • 控制器
  • 测试文件
  • conf file

在配置文件中,我添加了以下4个文件:

// list of files / patterns to load in the browser
files: [
    'angular.js',
    'angular-mocks.js',
    '*.js'
],

当我尝试通过右键单击抛出测试时出现错误:描述未定义

感谢。

2 个答案:

答案 0 :(得分:1)

我尝试从头开始重新启动,看来我的app模块实例化不是很好,这样更好:

var app = angular.module('monApp', []); 
app.controller('DashboardCtrl', ['$scope', function ($scope) { .... 

第一个问题&#34;空测试套件&#34;是由于配置文件中的错误的basePath。无论如何,谢谢你的回答!

答案 1 :(得分:0)

你的my.conf.js必须包含:

frameworks: ['jasmine']

而Karma需要安装Jasmine框架的桥梁:

npm install karma-jasmine --save-dev

默认情况下,karma加载所有已安装的插件,这些插件以&#34; karma - &#34;开头。