私のKarmaインストールは自動監視に使用されていました-.jsファイルを保存すると、テストが再実行されました。 JavaScriptを実行してから2か月が経ちましたが、今度は再びJavaScriptを使用するようになり、自動監視機能が機能しなくなりました。ここに私のkarma.confがあります:
module.exports = function (config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '../',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'jQuery/jquery-1.10.2.js',
'jasmine/jasmine.js',
'jasmine-jquery/jasmine-jquery.js',
'Angular/angular.js',
'Angular/angular-route.js',
'Angular/angular-mocks.js',
'Angular/angular-animate.min.js',
'Angular/angular-sanitize.min.js',
'Angular/angular-cache.min.js',
'emcommon.js',
'Moment/moment.js',
'ViewModels/Common/*.js',
'ViewModels/Settings/*.js',
'Tests/Common/*.js',
'Tests/Settings/*.js',
],
// list of files to exclude
exclude: [
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'../ViewModels/**/*.js': 'coverage'
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress', 'coverage'],
coverageReporter: {
type: 'html',
},
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
usePolling: true,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Chrome'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false
});
};
私はアドバイスを読み、それに従いました here 。 usePolling
をtrueに設定してみました。私は3つの異なるプログラムを使用してファイル(VS、Sublime、およびメモ帳)を保存し、それを除外しました。 Karmaを停止して再起動すると、変更が反映され、期待どおりに合格/不合格になりますが、実行中にファイルが変更されることはありません。
Karma 0.12.7から0.13.0に移行しても問題は変わりません。
まず第一に、以下のCLIオプションを使用して実行の出力を表示すると、いくつかの助けになると思います。
# add --single-run, or kill the process manually when finished.
karma start karma.conf.js --auto-watch --log-level debug > log.txt
次に、log.txt
の内容を Pastebin に貼り付けます。それはおそらくあなたの質問の編集として置くには大きすぎるでしょう。
また、Chrome
とは異なるブラウザーを実行してみます。mayが karma-runner#のすべての例のように問題の原因であることを否定しません。 895 は、選択したブラウザーとしてChrome
を表示します(これは古い問題であり、その外観によって解決されています)。
PhantomJSやChrome Canaryで試してみて、うまくいくかどうかを確認してください。
ローカルセットアップの一部として、タスクランナーがいますか?その場合は、kill--auto-watch
を使用して、選択したタスクランナーで同等のソリューションを使用できます。
グラントタスクを設定する方法は次のとおりです。
karma: {
options: {
configFile: 'karma.conf.js'
},
watch: {
background: false,
singleRun: false
}
}
次のkarma.conf設定で:
module.exports = function(config) {
config.set({
frameworks: ['mocha'],
basePath: '',
files: [ /** redacted **/ ],
urlRoot: '/base/app/',
reporters: ['progress'],
logLevel: config.LOG_INFO,
browsers: ['PhantomJS'],
singleRun: true
});
};
Sudo
で実行してみてください。karma init newconf.js
を実行してから、これを試してみてください。
karma start newconf.js --auto-watch
私はあなたのテストからいくつかの出力を見ることがここで非常に役立つと思います。そしてできればいくつかのバージョン番号:
次のようなkarma.confを試してみてください。
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
'some_jasmine_spec.js',
],
reporters: ['progress'],
port: 9000,
colors: true,
logLevel: config.LOG_DEBUG,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
some_jasmine_spec.js
ファイルは次のようになります。
describe('dummy_test', function() {
it('just runs', function() {
expect(true).to.be.false;
});
});
some_jasmine_spec.js
ファイルを、削除されたkarma.confと同じフォルダーに配置し、別の結果が得られるかどうかを確認します。
files
配列の最後の行が読み取られていないことに気づきました。最初のログファイルの出力を確認する場合:
# The last DEBUG [watcher] entry
# 27 - [36m17 07 2015 14:35:37.160:DEBUG [watcher]: [39mWatching "c:/Projects/Gazelle - EstateManager/DEV-Container/(9112) ViewDevice/EstateManagerUI/EstateManagerUI/Scripts/Tests/Settings"
# The last DEBUG [web-server] entry
# 102 - [36m17 07 2015 14:35:38.321:DEBUG [web-server]: [39mserving (cached): c:/Projects/Gazelle - EstateManager/DEV-Container/(9112) ViewDevice/EstateManagerUI/EstateManagerUI/Scripts/Tests/Settings/viewschedulemodule.tests.js
したがって、./*/*.js
パターンのファイルはどれも読み取られていません。
./**/*.js
、または**/*.js
に変更してみます。
たとえそうであっても、ダミーのジャスミンテストは、含まれていないファイルに関連していればトリックを実行するはずでした。
ここではアイデアが不足していますが、
basePath
を../
に変更して、他のすべてのファイル参照から../
を削除してみます。これは、「有効な」懸念というよりも、私の(かゆい)好奇心を掻くものです。しかし、ちょっと、試しては問題ありません。
最後の溝の努力;ターミナルを開いて次を実行します(申し訳ありませんが、UNIXベースのシステムを使用しています-私のMS-DOSは標準に達していないので...)それをすべてクリーンアップしましょうキャッシュを削除し、必要なパッケージを再インストールして、もう一度試してください。
クリーンアップ/アウト
$ rm -rf node_modules # clean out your local node modules
$ npm cache clean # clean out the npm cache
$ npm uninstall karma karma-cli karma-chrome-launcher karma-coverage karma-firefox-launcher karma-ie-launcher karma-jasmine jasmine -g # uninstall assorted karma/jasmine libraries globally
バックアップ
$ mv karma.conf.js karma.conf.bak.js # backup your karma.conf
再インストール
$ npm install karma karma-cli karma-chrome-launcher karma-coverage karma-firefox-launcher karma-ie-launcher karma-jasmine jasmine -g # reinstall assorted karma/jasmine libraries globally
$ npm install # reinstall your local node modules
再初期化
$ karma init # initialise a new karma.conf.js file
$ karma start karma.conf.js --auto-watch --log-level debug
log.txt
にパイプしてアップロードします。デバッグ
新しいkarma.conf.jsファイルでsingleRun
がfalse
に設定されていることを確認してから、接続されているブラウザーをポップオープンしてhttp://localhost:9876
に移動します。
デバッグボタンを押して、開発ツール(Webインスペクター/コンソール)を開き、ページをリロードするとどうなるかを調べます。
これで何も変わらない場合、私は途方に暮れています。
記録のために、私は最終的にそれを修正しました:
いずれにせよ、それだけではうまくいきませんでした。これが他の誰かを助けることを願っています。