Jasmineを使用してAngularJSユニットテストを実行するようにKarmaを設定しようとしていますが、テストを実行できません。単純なものを見落としているに違いない。私はこれをWindows 7マシンでNode.js
がインストールされ、npm
を介してkarmaがインストールされます。
私のディレクトリ構造は次のようになります。
- js/app /-コントローラー、アプリなどが含まれています
- js/config /-karma.conf.jsが含まれています
- js/lib /-角度を含む
- js/test /-ジャスミンの仕様が含まれています
js
ディレクトリでコマンドプロンプトを起動し、このコマンドを実行しています。
karma start config/karma.conf.js
これにより、Chromeがポート9876で実行されますが、監視対象ファイルを変更してKarma出力を確認するたびに、次の情報メッセージが表示されます。
No captured browser, open http://localhost:9876/
ここに私の設定ファイルがあります:
module.exports = function(config) {
config.set({
basePath: '../',
frameworks: ['jasmine'],
files: [
'lib/angular.js',
'app/**/*.js',
'test/**/*.js'
],
exclude: [
],
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
captureTimeout: 60000,
singleRun: false
});
};
私はAngular 1.2.10およびKarma 0.10.9を使用しています
ただし、別のセットアップ(Linux、QUnit、Firefox)で同じ問題が発生しました。すべてのカルマプロセスを終了し、新しいkarma start
。
フェイスパームモーメント がありました。 karma start
は、karma.conf.js
ファイルと同じディレクトリで実行する必要があります。
このエラーは、ブラウザがサーバーを見つけられないことを意味します。記載されているURLでサーバーにアクセスできるかどうかを確認します。ポート番号が正しく設定されていないか、(私の場合のように)localhost
が誤って設定されている可能性があります。サーバーが実行されていないか、他の多くの問題が発生している可能性があります。
サーバーに手動でアクセスできるかどうかを確認します。できない場合は、修正してください。
これは、コード内で無限ループが発生したときに起こりました。私が書いた最近のコードを(ジャスミンのxdescribe
を使用して)コメントアウトすると、テストが再び実行されました。
私は同じ問題を抱えていて、コードを変更せず、1か月前に機能したテストを再実行しました。
webstorm
から実行したとき、ブラウザをキャプチャするのに長い時間がかかっているように思えたので、タイムアウトになるのではないかと考えました。
そこで、ブラウザをChrome
だけに設定してみました(私もphantomjs
を使用していました)。その後、Chrome
とPhantomJS
にリセットします。これで問題ありません。
私は同じ問題を抱えていて、私が見つけた提案された解決策をたくさん試しましたが、最終的にそれを解決したのは、node_modulesフォルダーを削除し、npm installですべてを新しくすることでした。
同じ問題があり、テストのバグでした。そのコードを削除すると、エラーが修正されました。
Karma-cli npm install -g karma-cli
をインストールすると、この問題は解決しました。お役に立てれば。
最近同じエラーが発生しました:
angular-cli
を使用するプロジェクト、テストが実行されていたステップで以前にJenkinsのジョブをキャンセルしたため、ng test
は終了しませんでした([node] <defunct>
プロセスとペアになったng
プロセスを実行していましたが、それ以上のテスト実行をブロックします)。解決策は、すべてのハングしているng
プロセスを見つけて強制終了することでした:
$ Sudo -su jenkins
# ps aux | grep "ng$" | awk '{print $2}' | xargs kill -9
私は同じ問題を抱えていて、ここからの全員が何の結果も出さずに言ったことをすべてやりました。私の場合は、initを実行しませんでした。
C:\Users>cd c:\xampp\htdocs\angularjs-pro\ch07
c:\xampp\htdocs\angularjs-pro\ch07>karma init
Which testing framework do you want to use ?
Press tab to list possible options. Enter to move to the next question.
> jasmine
Do you want to use Require.js ?
This will add Require.js plugin.
Press tab to list possible options. Enter to move to the next question.
> no
Do you want to capture any browsers automatically ?
Press tab to list possible options. Enter empty string to move to the next question.
> Chrome
同じ状況に陥ったのは2回目でした。karma start
私が置いた場所ではなく、間違ったフォルダーにkarma init
。
どちらの場合も、私は未亡人コンソールで得た問題を修正した後:
22 11 2016 14:06:51.697:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
22 11 2016 14:06:51.698:INFO [launcher]: Launching browser Chrome with unlimited concurrency
22 11 2016 14:06:51.711:INFO [launcher]: Starting browser Chrome
22 11 2016 14:06:53.936:INFO [Chrome 54.0.2840 (Windows 10 0.0.0)]: Connected on socket /#HnJUQrkRPqtGFa5ZAAAA with id 16058274
私は同じ問題に直面していたので、タスクマネージャーからすべてのchromeインスタンスを殺すことで解決しました。実行中のテストランナーの数は 'n'でした。サーバーを停止せずに、そのインスタンスはまだ生きています。
そこで、「alt + ctrl + delete」を押して、chromeのすべてのセッション/インスタンスを強制終了し、Karmaを再起動します。
できます!