获取ReferenceError:无法找到变量:angular

时间:2014-01-13 14:35:06

标签: javascript angularjs yeoman

我是自耕农及其使用的所有工具的新手。我在自耕农中创建了一个测试项目,并尝试在茉莉花中运行测试规范。 我已经使用cmd:

安装了jasmine插件

npm install grunt-contrib-jasmine --save-dev

在Gruntfile.js中添加了jasmine任务

jasmine: {
        src:    '<%= yeoman.app %>/scripts/{,*/}*.js',
        specs: 'test/spec/{,*/}*.js'
    },

当我运行jasmine任务 grunt jasmine 时出现以下错误: -

E:\Personal Projects\yeoman-projects\test-app>grunt jasmine
Running "jasmine:src" (jasmine) task

Testing jasmine specs via phantom
ReferenceError: Can't find variable: angular at
..\..\..\E:\Personal%20Projects\yeoman-projects\test-app\app\scripts\app.js:3

ReferenceError: Can't find variable: angular at
..\..\..\E:\Personal%20Projects\yeoman-projects\test-app\app\scripts\controll
ers\main.js:3

以下是我的main.js

'use strict';

angular.module('testAppApp')
  .controller('MainCtrl', function ($scope) {
    $scope.awesomeThings = [
      'HTML5 Boilerplate',
      'AngularJS',
      'Karma'
    ];
  });

和app.js

'use strict';

angular.module('testAppApp', [
  'ngRoute'
])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

我错过了什么吗?

谢谢, 帕里克希特

2 个答案:

答案 0 :(得分:9)

在jasmine src下你必须包含angular.js。现在你只包括你自己的脚本。如果您使用的是yeaoman,它们通常位于名为bower_components / angular的文件夹中。

答案 1 :(得分:0)

为了保持测试文件的清洁,您应该使用options.vendor

jasmine: {
    src:    '<%= yeoman.app %>/scripts/{,*/}*.js',
    specs: 'test/spec/{,*/}*.js',
    vendor: 'path/to/angular.js'
},

See the documentation