2014-01-13 16 views
8

Ich bin neu zu Yeoman und alle Werkzeuge, die es verwendet. Ich habe ein Testprojekt in yeoman erstellt und versuche, die Testspezifikation in Jasmin auszuführen. Ich habe die Jasmin-Plugin installiert cmd:bekommen ReferenceError: Kann Variable nicht finden: eckig

npm installieren Grunzen-contrib-Jasmin --save-dev

Added eine Jasmin Aufgabe in Gruntfile.js

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

, wenn ich laufen der Jasmin Aufgabe Grunzen Jasmin erhalte ich folgende Fehlermeldung: -

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 

Es folgt mein main.js

'use strict'; 

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

und app.js

'use strict'; 

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

Bin ich etwas fehlt?

Danke, Parikshit

+1

Dieses Problem kann auch auftreten, wenn Sie angular von 'https: // code.angularjs.org /' einschließen. Fügen Sie sie stattdessen lokal oder über die von Google bereitgestellte Bibliotheks-API hinzu. –

Antwort

9

unter Jasmin src müssen Sie Angularjs umfassen. Für den Moment haben Sie nur Ihre eigenen Skripte hinzugefügt. Wenn Sie Yeaoman verwenden, befinden sie sich normalerweise in einem Ordner namens bower_components/angular.

+0

Stellen Sie außerdem sicher, dass Sie angular.js vor Ihren eigenen Anwendungsskriptdateien referenzieren – Mathew

0

Um Ihre Testdateien sauber zu halten, sollten Sie dafür options.vendor verwenden.

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

See the documentation.

Verwandte Themen