天天看點

Karma中文配置API

Karma Configuration Options

參數 作用
autoWatch

Type:Boolean

。預設為

true

。啟用或禁用監視檔案,當這些檔案被改變時,執行測試。
autoWatchBatchDelay

Type:Number

。預設為

250

。當karma監視這些檔案的變動時,它會嘗試将多個更改分批處理到一個單獨的運作中,以便測試運作器不會嘗試啟動并重新啟動正在運作的測試。配置設定将告訴karma在發生更改之後,在再次發生更改之前,應該等待多久(毫秒)。
basePath

Type: String

。預設為

""

。将用于解析

files

exclude

中定義的所有相對路徑的根路徑位置。如果

basePath

的配置是一個相對路徑,那麼它将被解析到

__dirname

的配置檔案中。
browserDisconnectTimeout

Type: Number

。預設為

2000

。規定karma等待浏覽重連的時間(毫秒)。
browserConsoleLogOptions

Type: Objecr

。預設為

{level: "debug", format: "%b %T: %m", terminal: true}

。使用以下屬性配置浏覽器控制台的記錄方式,所有這些屬性都是可選的:

{

level: string,

format: string,

path: string,

terminal: boolean

}

這裡的

level是

所需的日志級别(log-level),其中

log

級别總會被記錄。

format

的取值是

%b

,

%t

,

%T

, 和

%m

的其中一個字元串,該字元串會替換成浏覽器字元串,分别記錄小寫、大寫日志類型和日志資訊。

format

的取值僅僅會影響輸出檔案。

path

是輸出檔案的輸出路徑,

terminal

訓示日志是否應該被輸出在終端。
browserDisconnectTolerance

Type: Number

。預設為 。允許的斷開連接配接數。該值代表着浏覽器在斷開連接配接時嘗試的最大嘗試次數。通常情況下,任何斷開連接配接都被認為是失敗,但是當karma伺服器和浏覽器之間有片狀的網絡連接配接時,這個選項允許你定義一個容錯級别。
browserNoActivityTimeout

Type: Number

。預設為

10000

。karma在斷開浏覽器連接配接之前,等待的浏覽器消息的時間(毫秒)。如果在測試執行期間,karma在規定時間(該值)内沒有收到來自浏覽器的任何消息,則它将從浏覽器斷開連接配接。
browsers

Type: Array

。預設為

[]

。可能的值:

Chrome

(需要 karma-chrome-launcher 插件)

ChromeCanary

(需要karma-chrome-launcher 插件)

PhantomJS

(需要 karma-phantomjs-launcher 插件)

Firefox

(需要 karma-firefox-launcher 插件)

Opera

(需要 karma-opera-launcher 插件)

IE

(需要 karma-ie-launcher 插件)

Safari

(需要 karma-safari-launcher 插件)

說明:該值是要啟動和捕獲的浏覽器清單。當Karma啟動時,它也會啟動放置在這個設定中的每個浏覽器。一旦Karma關閉,它也會關閉這些浏覽器。您可以通過打開浏覽器并通路Karma Web伺服器正在偵聽的URL來手動捕獲任何浏覽器(預設情況下為http://localhost:9876/)。

captureTimeout

Type: Number

。預設為

"60000"

。捕獲浏覽器的逾時時長(ms)。該值代表着浏覽器啟動并連接配接到karma的最大啟動時長。如果浏覽器不能在規定時長内被捕獲到,karma将會結束該任務,并嘗試重新啟動它,如此三次之後,karma将會放棄捕獲。
client.args

Type: Array

。預設為

undefined

。當

karma run

在指令行中傳遞附加參數時,它們将作為

karma.config.args

(字元串數組)傳遞給測試擴充卡。

clinet.args

選項允許你設定除了

run

之外的操作值。
client.useIframe

Type: Boolean

。預設為

"true"

。在内嵌架構(iframe)或者新視窗運作測試。如果該值為

true

,karma會在内嵌架構中運作測試。如果為

false

,karma會在新視窗運作測試。有些測試可能無法在内嵌架構運作,而是需要在新視窗中運作。
client.runInParent

Type: Boolean

。預設為

"false"

。不使用内嵌架構或新視窗,在與用戶端相同視窗運作測試。如果該值為

true

,karma不會使用内嵌架構,而是會在最初的視窗運作測試。它将會動态加載測試腳本。
client.captureConsole

Type: Boolean

。預設為

true

。捕獲所有控制台輸出并傳送(pipe)到終端
client.clearContext

Type: Boolean

。預設為

true

。清除上下文視窗。如果該值為

true

,karma會在完成運作測試的基礎之上清除上下文視窗。如果為

false

,karma在完成運作測試之後并不會清除上下文環境。當嵌入一個

Jasmine Spec Runner Template

時,設定該值為

false

會非常有用。
colors

Type: Boolean

。預設為

true

。啟用或禁用輸出(報告和日志)的顔色
concurrency

Type: Number

。預設為

"Infinity"

。karma并行啟動多少個浏覽器。特别是像 SauceLabs 和Browserstack 服務,隻有一次啟動數量有限的浏覽器才有意義,同時隻有當那些服務完成之後才能啟動更多浏覽器。使用該配置,你可以指定在同一時間點上,一次運作多少個浏覽器。
crossOriginAttribute

Type: Boolean

。預設為

true

。當該值為

true

時,它會在生成的腳本标簽中添加跨域屬性(crossorigin attribute),進而為不同域的JavaScript檔案提供更好的錯誤報告。當你需要加載無需

Access-Control-Allow-Origin

資料頭服務的外部腳本時,你可以禁用它。
customContextFile

Type: String

。預設為

null

。如果該值為預設值

null

,那麼karma會使用自己的

context.html

檔案。
customDebugFile

Type: String

。預設為

null

。如果該值為預設值

null

,那麼karma會使用自己的

debug.html

檔案
customClientContextFile

Type: String

。預設為

null

。如果該值為預設值

null

,那麼karma會使用自己的

client_with_context.html

檔案(當

client.runInParent

設定為

true

式才會啟用該檔案)。
customHeaders

Type: Array

。預設為

undefined

。正常的HTTP資料頭(header)将依賴與karma的web服務檔案。正常資料頭非常有用,特别即将到來的

Service Workers

浏覽器産品。

該值的參數允許你為正規表達式檔案設定HTTP資料頭。

customHeaders

是一個數組對象,并具有以下屬性:

  · match : 比對檔案的正規表達式

  · name : HTTP資料頭名稱

Example:

customHeaders: [{

match:.'*foo.html',

name: 'Service-Worker-Allowed'

value: '/'

}]

detached

Type: Boolean

。預設為

false

。當該值為

true

,它将會在其他程序中啟動karma服務,同時不向控制台寫入輸出。該服務可以使用

karma stop

指令終止。
exclude

Type: Array

。預設為

[]

。從加載檔案中排除的檔案/模式的清單
failOnEmptyTestSuite

Type: Boolean

。預設為

true

。啟用或禁用運作空測試套件 (empty test-suites)時的失敗。如果禁用,程式将傳回退出代碼 并顯示警告。
files

Type: Array

。預設為

[]

。在浏覽器中加載的檔案/模式清單。檢視更多關于config/files的資訊
forceJSONP

Type: Boolean

。預設為

false

。強制socket.io使用JSONP輪詢而不是XHR輪詢。
frameworks

Type: Array

。預設為

[]

。你要使用的測試架構清單。通常情況下,你會設定該值為

['jasmine']

,

['mocha']

['qunit']

請注意: karma中的所有架構都需要安裝額外的插件/架構庫(通過NPM)。

更多插件資訊,請點選這裡。

listenAddress

Type: String

。預設為

'0.0.0.0'

LISTEN_ADDR

。伺服器的位址将會被監聽。更改為

localhost

僅僅會監聽環路,或者更改為

::

,監聽所有的IPv6接口。
hostname

Type: String

。預設為

localhost

。捕獲浏覽器時使用的主機名。
httpsServerOptions

Type: Object

。預設為

{}

。參數對象會被node的

http

類使用。對象的描述可以在 NodeJS.org API docs中被找到。

Example:

httpsServerOptions: {

key: fs.readFileSync('server.key', 'utf8'),

cert: fs.readFileSync('server.crt', 'utf8')

}]

logLevel

Type: Constant

。預設為

config.LOG_INFO

可能的值:

  ·

config.LOG_DISABLE

  ·

config.LOG_ERROR

  ·

config.LOG_WARN

  ·

config.LOG_INFO

  ·

config.LOG_DEBUG

說明:該值控制日志的級别。
loggers

Type: Array

。預設為

[{type: 'console'}]

。使用的輸出端的日志清單。更多文檔資訊,請通路log4js。
middleware

Type: Array

。預設為

[]

。你想要karma伺服器使用的額外的中介軟體(middleware)清單。中介軟體将會按順序被使用。

你必須通過插件/架構(内聯或通過NPM)安裝這些中介軟體。更多的資訊你可以在插件中找到。

插件必須提供一個表達/連接配接(express/connect) 中介軟體的函數(更多細節,你可以通路the Express docs )。

使用例子:

var CustomMiddlewareFactory = function (config) {

return function (request, response, ) {

response.writeHead(200)

return response.end("content!")

}

}

middleware: ['custom']

plugins: [

{'middleware:custom': ['factory',CustomMiddlewareFactory]}

...

]

mime

Type: Object

。預設為

{}

。重定義從檔案擴充名到

MIME

類型的預設映射。設定屬性名需要

MIME

,提供擴充數組(無點)作為值。

例子:

mine{

'text/x-typescript':['ts','tsx']

'text/plain>':['mytxt']

}

beforeMiddleware

Type: Array

。預設值為

[]

。排出那些将會在karma自己的中介軟體之前運作的中介軟體。
plugins

Type: Array

。預設值為

['karma-*']

。加載插件的清單。一個插件可以是一個字元串(這種情況下,它将會被karma引用)或者一個内聯插件對象。預設情況下,karma會加載以

karma-*

開頭命名的所有兄弟NPM 子產品。

注意:幾乎所有的karma插件都需要(通過NPM)一個額外的庫來安裝。

檢視插件擷取更多資訊。

port

Type: Number

。預設值為

9876

。設定将被web伺服器監聽的端口。
processKillTimeout

Type: Number

。預設值為

2000

。在發送

SIGKILL

指令之前,karma等待結束浏覽器程序的時間。

如果在測試完成之後,或在karma嘗試關閉浏覽器之後,浏覽器沒有在

processKillTimeout

(ms)時間被關閉,karma将會發送一個

SIGKILL

指令去嘗試強制關閉浏覽器。
preprocessors

Type: Object

。預設為

{'**/*.coffee': 'coffee'}

。要是用的預處理器的映射。

預處理器可以通過插件加載。

注意:幾乎所有的karma的預處理器(除了CoffeeScript和一些其他預設的預處理器)都需要(通過NPM)額外的庫去安裝。

protocol

Type: String

。預設為

'http:'

可能的值:

    ·

http:

    ·

https:

說明 : 運作karma webserver使用的協定。

确定要是使用Node的

http

還是

https

類。

注意:使用

'https:'

你需要指定

httpsServerOptions

httpModule

Type: String

。預設為:

undefined

。Karma webserver要使用的子產品。

使用提供的子產品代替Node建構的

http

https

子產品。這裡加載的子產品必須正确地比對Node http子產品的接口。這對加載像允許支援 http2的

node-http2

子產品非常的有用。

注意:如果你使用了該屬性來啟用

https

,那麼你必須設定

protocol

https:

,同時把http2zuo為指定證書才可以運作https。
proxies

Type: Object

。預設為:

{}

。代理路徑的映射配對。代理可以迅速地被指定目标url或路徑,或者使用一個對象去配置更多的選項。可能的選項包括:

    ·

target

目标url或者路徑(必填)

    ·

changeOrigin

無論如何,代理都應該使用目标(預設為

false

)的主機來覆寫 主機資料頭(Host header)。

例子:

proxies:{

'/static': 'http://gstatic.com',

'/web': 'http://localhost:9000',

'/img/': '/base/test/images/',

'/proxyfied':{

'target': 'http://myserver.localhost',

'changeOrigin': true

}

proxyValidateSSL

Type: Boolean

。預設為

true

。當發現無效的SSL證書時,無論Karma還是任何浏覽器都應該報錯。
reportSlowerThan

Type: Number

。預設為 。 Karma将報告比給定時間限制(毫秒)慢的所有測試。這是預設禁用的(因為預設值是0)。
reporters

Type: Array

。預設為

['progress']

可能的值:

    ·

dots

    ·

progress

使用的報告者(reporter)清單。

額外的報告者,例如

growl

,

junit

,

teamcity

或者

coverage

可以通過插件被加載。

注意:幾乎所有的karma報告者都需要(通過NPM)額外的庫去安裝。

formatError

Type: Function

。預設為

undefined

參數:

·

msg

- 一個單行的斷言錯誤和堆棧跟蹤(為每一行調用)。

傳回值:一個新的錯誤資訊行。

說明:規定斷言錯誤和堆棧跟蹤的格式。用于删除供應商和編譯源。傳回一個空行

''

來删除它。
restartOnFileChange

Type: Boolean

。預設為

false

。當karma監視檔案變動,它将延遲新的運作,直到目前運作結束。禁用這個設定将會取消目前運作,并在檢測到變動時立即啟動一個新的運作。
retryLimit

Type: Number

。預設為

2

。當浏覽器崩潰,karma将會嘗試重新開機。該屬性定義了karma在放棄之前,重新開機浏覽器的次數。
singleRun

Type: Boolean

。預設為

false

。持續內建模式。

如果該值為

true

,karma将會啟動和捕獲配置的浏覽器,運作測試然後退出,退出使用的代碼 或

1

取決于測試是成功還是失敗。
transports

Type: Array

。預設為

['polling', 'websocket']

。浏覽器和測試伺服器之間允許的傳輸方法的數組。此配置設定交給了socket.io(管理浏覽器和測試伺服器之間的通信)。
proxyReq

Type: Function

。預設為

undefined

。當請求代理時調用。

有關詳細資訊可以在node-http-proxy中找到。

下面顯示了覆寫HTTP标頭的示例。

proxyReq: function(proxyReq, req, res, options) {

proxyReq.setHeader('Referer','https://www.example.com/');

}

proxyRes

Type: Object

。預設為

undefined

。調用代理時調用。有關詳細資訊可以在node-http-proxy中找到。
upstreamProxy

Type: Object

。預設為

undefined

說明:用在當karma伺服器需要改變基礎url的代理後運作時。

如果設定以下字段,該屬性将被定義并(可以)被覆寫:

path

Type: String

。預設為

/

說明:當啟動浏覽器時,将被添加到基本網址,并被浏覽器加載到内部網址

port

Type: Number

。預設為

9875

說明:當浏覽器啟動時将會使用的端口。

hostname

Type: String

。預設為

localhost

說明:當浏覽器啟動時将會使用的主機名。

protocol

Type: String

。預設為

'http:'

說明:當浏覽器啟動時将會使用的協定。

urlRoot

Type: String

。預設為

'/'

。karma運作的基礎url。

karma所有的url都要使用

urlRoot

作為字首。當使用代理時這就很有用了,因為有時候你可能要代理一個已經被karma占用的url。
jsVersion

Type: Number

。預設為

在Firefox浏覽器中使用的JavaScript版本。

如果該值大于零(>0),Karma會将JavaScript版本标簽添加到包含的JavaScript檔案中。

注意:這将隻适用于Firefox浏覽器。它是目前唯一支援版本标簽的浏覽器。

原位址:https://karma-runner.github.io/latest/config/configuration-file.html

翻譯時間:2017年11月15日。

說明:如果翻譯有誤,請各位看官私信我,或者在評論區指出。

繼續閱讀