ほとんどの場合、Karmaはコマンドラインから直接使用します。ただし、NodeモジュールからプログラムでKarmaを呼び出すこともできます。これがパブリックAPIです。
constructor
#Server
インスタンス。require('karma').Server
の 'S'は大文字であることに注意してください。
以下の方法はまだ動作しますが、その動作は非推奨であり、将来のメジャーバージョンで変更される予定です。
var Server = require('karma').Server
var karmaConfig = {port: 9876}
var server = new Server(karmaConfig, function(exitCode) {
console.log('Karma has exited with ' + exitCode)
process.exit(exitCode)
})
const karma = require('karma')
const parseConfig = karma.config.parseConfig
const Server = karma.Server
parseConfig(
null,
{ port: 9876 },
{ promiseConfig: true, throwErrors: true }
).then(
(karmaConfig) => {
const server = new Server(karmaConfig, function doneCallback(exitCode) {
console.log('Karma has exited with ' + exitCode)
process.exit(exitCode)
})
},
(rejectReason) => { /* respond to the rejection reason error */ }
);
server.start()
#karma start
と同等です。
server.start()
server.refreshFiles()
#ファイルリストの更新をトリガーします。Promiseを返します。
server.refreshFiles()
server.refreshFile(path)
#ファイルの更新をトリガーします。Promiseを返します。
server.refreshFile('src/js/module-dep.js')
server
オブジェクトは EventEmitter
です。次のようにイベントをリッスンすることができます。
server.on('browser_register', function (browser) {
console.log('A new browser was registered')
})
listening
#引数
port
: ポート番号指定されたポートで接続の受け入れを開始します。
browser_register
#引数
browser
: ブラウザインスタンス新しいブラウザが開かれましたが、まだ準備ができていません。
browser_error
#引数
browser
: ブラウザインスタンスerror
: 発生したエラーこのブラウザインスタンスでエラーが発生しました。
browser_start
#引数
browser
: ブラウザインスタンスinfo
: 実行に関する詳細このブラウザでテストの実行が開始されます。
browser_complete
#引数
browser
: ブラウザインスタンスresult
: テスト結果このブラウザでテストの実行が完了しました。
browsers_change
#引数
browsers
: ブラウザインスタンスのコレクションブラウザのリストが変更されました。
browsers_ready
#すべてのブラウザが実行準備完了です。
run_start
#引数
browsers
: テストが実行されるブラウザインスタンスのコレクションテストの実行が開始されます。
run_complete
#引数
browsers
: ブラウザインスタンスのコレクションresults
: 結果のリストこのイベントは、テスト実行に属するすべてのブラウザが完了するたびにトリガーされます。たとえば、3つのブラウザで実行する場合、`run_complete`の前に3つの`browser_complete`イベントが発生することが予期されます。
runner.run(options, [callback=process.exit])
#EventEmitter
karma run
と同等です。
以下の方法はまだ動作しますが、その動作は非推奨であり、将来のメジャーバージョンで変更される予定です。
var runner = require('karma').runner
runner.run({port: 9876}, function(exitCode) {
console.log('Karma has exited with ' + exitCode)
process.exit(exitCode)
})
const karma = require('karma')
karma.config.parseConfig(
null,
{ port: 9876 },
{ promiseConfig: true, throwErrors: true }
).then(
(karmaConfig) => {
karma.runner.run(karmaConfig, function doneCallback(exitCode, possibleErrorCode) {
console.log('Karma has exited with ' + exitCode)
process.exit(exitCode)
})
},
(rejectReason) => { /* respond to the rejection reason error */ }
);
callback
引数 #コールバックは、最初の引数として終了コードを受け取ります。
エラーが発生した場合、エラーコードはエラーコールバックの2番目のパラメータとして提供されます。
runner.run()
は、レポーター出力を `Buffer` オブジェクトとして渡す `progress` イベントを発行する `EventEmitter` を返します。
そのイベントをリッスンして、レポーター出力をコンソールに出力できます。
runner.run({port: 9876}).on('progress', function(data) {
process.stdout.write(data)
})
stopper.stop(options, [callback=process.exit])
#この関数は、実行中のサーバーに停止を通知します。 karma stop
と同等です。
以下の方法はまだ動作しますが、その動作は非推奨であり、将来のメジャーバージョンで変更される予定です。
var stopper = require('karma').stopper
stopper.stop({port: 9876}, function(exitCode) {
if (exitCode === 0) {
console.log('Server stop as initiated')
}
process.exit(exitCode)
})
const karma = require('karma')
karma.config.parseConfig(
null,
{ port: 9876 },
{ promiseConfig: true, throwErrors: true }
).then(
(karmaConfig) => {
karma.stopper.stop(karmaConfig, function doneCallback(exitCode, possibleErrorCode) {
if (exitCode === 0) {
console.log('Server stop as initiated')
}
process.exit(exitCode)
})
},
(rejectReason) => { /* respond to the rejection reason error */ }
);
callback
引数 #コールバックは、最初の引数として終了コードを受け取ります。
エラーが発生した場合、エラーコードはエラーコールバックの2番目のパラメータとして提供されます。
config.parseConfig([configFilePath], [cliOptions], [parseOptions])
#この関数は、指定された設定ファイルをロードし、設定済みの設定オブジェクトを返します。これは、Karmaを別のツールに統合し、Karmaのデフォルトを尊重しながらKarma設定をロードしたい場合に役立ちます。
以下の方法はまだ動作しますが、その動作は非推奨であり、将来のメジャーバージョンで変更される予定です。
const cfg = require('karma').config;
const path = require('path');
// Read karma.conf.js, but override port with 1337
const karmaConfig = cfg.parseConfig(
path.resolve('./karma.conf.js'),
{ port: 1337 }
);
将来の新しい動作では、プロセスを終了する代わりに例外をスローし、非同期設定ファイルはPromiseを使用してサポートされます。
const cfg = require('karma').config;
const path = require('path');
// Read karma.conf.js, but override port with 1337
cfg.parseConfig(
path.resolve('./karma.conf.js'),
{ port: 1337 },
{ promiseConfig: true, throwErrors: true }
).then(
(karmaConfig) => { /* use the config with the public API */ },
(rejectReason) => { /* respond to the rejection reason error */ }
);
configFilePath
引数 #null
| undefined
undefined
設定ファイルを指すファイルシステムパスを表す文字列。設定ファイルのデフォルトエクスポートは、Karma設定オプションを設定するために使用される関数です。この関数には、最初の引数として `Config` クラスのインスタンスが渡されます。このオプションが指定されていない場合、`cliOptions` 引数によって提供されるオプションのみが設定されます。
cliOptions
引数 #null
| undefined
undefined
設定ファイルで設定されたオプションよりも優先される値を持つオブジェクト。設定ファイルによってエクスポートされた関数に渡される設定オブジェクトには、これらのオプションが既に適用されています。設定ファイルがこれらのオプションに加えた変更は、最終的な設定では事実上無視されます。
設定ファイルと同じオプションをすべてサポートし、同じ `config.set()` メソッドを使用して適用されます。
この引数の予期されるソースは解析されたコマンドラインオプションですが、プログラムによるユーザーはこのオブジェクトを構築したり、完全に省略したりできます。
parseOptions
引数 #null
| undefined
undefined
`parseOptions` は、解析をさらに制御し、新しい動作や機能へのオプトインアクセスを可能にする設定オプションであるプロパティを持つオブジェクトです。
これらのオプションは、設定ファイルとオブジェクトの解析にのみ関連し、Karma自体の設定には関連しません。
parseOptions.promiseConfig
オプション #false
`parseOptions.promiseConfig === true` の場合、`parseConfig` は設定オブジェクトの代わりにPromiseを返します。
このオプションが `true` の場合、設定ファイルによってエクスポートされた関数はPromiseを返す場合があります。そのPromiseの解決は、すべての非同期アクティビティが完了したことを示します。内部的には、解決/履行された値は無視されます。同期使用と同様に、設定オブジェクトに対するすべての変更は `config.set()` メソッドを使用して行う必要があります。
設定ファイルによってエクスポートされた関数がPromiseを返さない場合、解析は完了し、すぐに履行されたPromiseが返されます。
設定ファイルによってエクスポートされた関数がPromiseを返すかどうかに関係なく、`parseConfig()` によって返されるPromiseは、解析された設定オブジェクト(`Config` クラスのインスタンス)を値として解決します。
ほとんどの場合、`parseOptions.throwErrors = true` も設定する必要があります。これにより、プロセスが終了しなくなり、エラーによってPromiseが拒否されるようになります。
parseOptions.throwErrors
オプション #false
以前は、`parseConfig()` は重大な障害が発生した場合に `process.exit(exitCode)` を呼び出していました。これは、Node.jsプロセスが終了する前に、独自のコードが障害に対応する方法がないことを意味していました。
`parseOptions.throwErrors = true` を渡すことで、`parseConfig()` はプロセスの終了を無効にします。
同期使用の場合、プロセスを終了する代わりに例外がスローされます。その後、コードは例外をキャッチし、必要な方法で応答できます。
非同期API(`parseOptions.promiseConfig = true`)が使用されている場合、`parseOptions.throwErrors = true` により、プロセスを終了する代わりにPromiseが拒否されるようになります。
karma.constants
#constants.VERSION
#Karmaの現在のバージョン
constants.DEFAULT_PORT
#Karmaサーバーに使用されるデフォルトポート
constants.DEFAULT_HOSTNAME
#Karmaサーバーに使用されるデフォルトのホスト名
constants.DEFAULT_LISTEN_ADDR
#Karmaサーバーがリッスンするために使用するデフォルトアドレス
constants.LOG_DISABLE
#ログを無効にするための値
constants.LOG_ERROR
#ログレベル `error` の値
constants.LOG_WARN
#ログレベル `warn` の値
constants.LOG_INFO
#ログレベル `info` の値
constants.LOG_DEBUG
#ログレベル `debug` の値
constants.LOG_PRIORITIES
#ログレベルの配列(降順):`LOG_DISABLE`、`LOG_ERROR`、`LOG_WARN`、`LOG_INFO`、`LOG_DEBUG`
constants.COLOR_PATTERN
#ログ出力のデフォルトカラーパターンです。
constants.NO_COLOR_PATTERN
#カラー出力を行わない場合のログ出力のデフォルトパターンです。
constants.CONSOLE_APPENDER
#デフォルトのコンソールアペンダーです。
constants.EXIT_CODE
#終了コードです。