2016-11-16 4 views
0

私はAngularJS:UpとRunningの本を読んで、作者がカルマとジャスミンをテストに使うと言った章で、あまりにも多くの言葉KarmaとJasmineをインストールする場所を指定します。私のプロジェクトカルマとジャスミンで実行することはできません

nodejsがインストールされ、正常に動作しています。次に、xampp/htdocs/angularjs-up-and-runningのプロジェクトに、テストするファイルを入れました。

私はnone_modulesと同じフォルダにあります。この最後のフォルダには、カルマ、カルマジャスミン、カルマ - クロムランチャーがあります。私はCに行くコンソールから

:/ XAMPP/htdocsに/ angularjsアップとランニング/ none_modules /カルマフォルダと私はコマンドを使用:

karma init 

私はすべての質問に答えた後、Iその後、使用:

karma start 

Chromeは次のように開いている: Chrome Debug

が、私は私のjsファイルをテストする方法がわかりません。私は自分のファイルをテストするためにhttp://localhost:9876/controller.jsを入れてみましたが、私は私のコンソール上でこれを得た:

Console Image

Controller.js

angular.module('notesApp', []).controller('ListCtrl', [ function(){ 
var self = this; 
self.items = [ 
    {id: 1, label: 'First', done: true}, 
    {id: 2, label: 'Second', done: false} 
]; 

self.getDoneClass = function(item) { 
    return { 
     finished: item.done, 
     unfinished: !item.done 
    }; 
}; 

}]);

私はangularjsとこのテストの王に慣れています。私は、インターンのソリューションを検索しましたが、私の問題は、私のファイルcontroller.jsを使ってそれをテストする方法を知らず、解決策が見つからないということです。 この状況で誰かが手を差し伸べてください。

+0

angular documentation:から)のように見えるかもしれません。 Chromeのウィンドウで何もする必要はありません。 – estus

+0

ここで変更するつもりです: 'module.exports = function(config){ config.set({ //すべてのパターンを解決するためのベースパス(例:ファイル、除外) basePath: angularjsアップとランニング」、 // //利用可能なフレームワークを使用するフレームワーク:https://npmjs.org/browse/keyword/karma-adapter フレームワーク:[ 'ジャスミン']、 を//ブラウザにロードするファイル/パターンのリスト ファイル:[コントローラ。JS ]、 は除外する除外するファイルの //リスト:[ ]、 ' – dragon

+0

はい、そのように、そこにスペックファイルを含めるhttp://karma-runner.github.io/1.0/config/files .html – estus

答えて

1

karma.conf.jsというファイルがあります。このファイルでは、実行するテストが含まれているファイルの配列で 'files'パラメータを指定します。したがって、「app/mytest.js」というテストを作成し、karma.conf.jsファイルにそのテストのパスを入れます。あなたは、テストファイル自体にあなたの角度のモジュールとコントローラの依存関係を含める必要が

module.exports = function(config) { 
config.set({ 
    files: [ 
     "app/test.js", 
    ], 
}); 
}; 

注意。アプリの

ので内容は/ mytest.jsはあなたがスペックファイルの書き込みとカルマの設定でそれらを指定する必要が

describe('PasswordController', function() { 
    beforeEach(module('app')); 

    var $controller; 

    beforeEach(inject(function(_$controller_){ 
    // The injector unwraps the underscores (_) from around the parameter names when matching 
    $controller = _$controller_; 
    })); 

    describe('$scope.grade', function() { 
    it('sets the strength to "strong" if the password length is >8 chars', function() { 
     var $scope = {}; 
     var controller = $controller('PasswordController', { $scope: $scope }); 
     $scope.password = 'longerthaneightchars'; 
     $scope.grade(); 
     expect($scope.strength).toEqual('strong'); 
    }); 
    }); 
}); 
+0

「ReferenceError:テストが定義されていません。」 – dragon

+0

これはステップバイステップの解決策ではなく、テストの設定のガイドラインです。正確な回答が必要な場合は、要点またはgithub repoへのリンクを投稿してください。 –

+0

カルマとジャスミンを使用すると、あなたもそのエラーに遭遇します。私はそのエラーを解決し、今では 'Uncaught ReferenceError:角度が定義されていません 'と表示されます。私を助けてくれてありがとう。 – dragon

関連する問題