摘要:介紹前身,創(chuàng)建出來(lái)的以下是官網(wǎng)對(duì)的相關(guān)特點(diǎn)介紹支持真實(shí)瀏覽器無(wú)瀏覽器熱更新,文件變化后自動(dòng)測(cè)試測(cè)試框架無(wú)關(guān)性支持開(kāi)源易測(cè)試持續(xù)集成安裝配置配置項(xiàng)自動(dòng)監(jiān)控更新如果為相對(duì)路徑,則加上作為前綴配合運(yùn)行瀏覽器如果瀏覽器在指定時(shí)間
介紹
前身 Testacular, AngularJs Team 創(chuàng)建出來(lái)的. 以下是官網(wǎng)對(duì)Karma的相關(guān)特點(diǎn)介紹
支持真實(shí)瀏覽器, 無(wú)瀏覽器PhantomJS
熱更新,文件變化后自動(dòng)測(cè)試
測(cè)試框架無(wú)關(guān)性 支持(Jasmine, Mocha, QUnit)
開(kāi)源
易測(cè)試
持續(xù)集成
安裝npm install -g karma or npm install -D karma配置
karma init or karma init karma.conf.js配置項(xiàng)
-- autoWatch 自動(dòng)監(jiān)控更新
-- basePath 如果 basePath 為相對(duì)路徑, 則加上 __dirname作為前綴, 配合files
-- browsers 運(yùn)行瀏覽器 ["Chrome", "Firefox"]
-- captureTimeout 如果瀏覽器在指定時(shí)間內(nèi)監(jiān)控失敗,karma將會(huì)刪殺死進(jìn)程并重啟, 如果重試3次都失敗,則放棄啟動(dòng)
-- colors 輸出是否輸出顏色
-- exclude 忽略加載的文件列表
-- files 瀏覽器訪問(wèn)的文件列表
-- hostname 主機(jī)名
-- logLevel 日志等級(jí) LOG_DISABLE, LOG_ERROR, LOG_WARN, LOG_INFO, LOG_DEBUG
-- loggers 日志輸出
-- port 端口號(hào)
-- preprocessors 預(yù)處理
-- proxies 代理配置
-- reportSlowerThan 運(yùn)行慢時(shí)間標(biāo)準(zhǔn), 0 表示不開(kāi)啟
-- reporters
-- runnerPort karma run 端口
-- singleRun 是否逐個(gè)運(yùn)行瀏覽器
-- urlRoot
-- jsVersion firexfox 瀏覽器支持
{ files: [ {pattern: "test/unit/*.js", watched: true, include: true, served: true}, {pattern: "src/**/*.js", included: false}, "test/test-main.js" ] }
-- pattern 匹配的模式, 使用 minimatch庫(kù)匹配
-- watched 是否監(jiān)控文件變化
-- included 是否直接script引入
-- served 文件是否部署在 karma 的 web服務(wù)上
-- nocache 默認(rèn)為 false,表示開(kāi)啟緩存
karma start
如果使用 karma start 啟動(dòng)了服務(wù), 但沒(méi)通過(guò)監(jiān)聽(tīng)文件變化自動(dòng)運(yùn)行測(cè)試腳本, 可以手動(dòng)執(zhí)行karma run測(cè)試.
瀏覽器配置{ browsers: ["Chrome", "Firefox"] }
注意: 大多數(shù)瀏覽器啟動(dòng)需要安裝插件
# Install the launcher first with NPM: $ npm install karma-xxx-launcher --save-dev配置啟動(dòng)插件
{ plugins: [ "karma-chrome-launcher", "karma-firefox-launcher" ] }設(shè)置瀏覽器啟動(dòng)路徑
# Changing the path to the Chrome binary $ export CHROME_BIN=/usr/local/bin/my-chrome-build # Changing the path to the Chrome Canary binary $ export CHROME_CANARY_BIN=/usr/local/bin/my-chrome-build # Changing the path to the PhantomJs binary $ export PHANTOMJS_BIN=$HOME/local/bin/phantomjsCoverage 代碼覆蓋率
激活代碼覆蓋率報(bào)告
{ reporters: ["coverage"], preprocessors: { // source files, that you wanna generate coverage for // do not include tests or libraries // (these files will be instrumented by Istanbul) "src/**/*.js": ["coverage"] }, coverageReporter: { type: "html", dir: "coverage/" } }代碼覆蓋率配置
type
html
lcov (lcov + html)
lcovonly
text
text-summary
cobertura
dir
輸出文件夾位置
file
type 為 text 或者 text-summary 時(shí), file 有效, 生成指定文件
代碼預(yù)處理,可以使用 es6, ts 編寫js, 通過(guò) babel 或 ts解釋器 進(jìn)行轉(zhuǎn)換.
常見(jiàn)的預(yù)處理插件,karma-coverage, karma-webpack
基于webpack的預(yù)處理配置{ files: [ "./index.js" ], preprocessors: { "./index.js": ["webpack", "sourcemap"] }, webpack: webpackConfig, // webpack 配置 webpackMiddleware: { noInfo: true }, plugins: [ "karma-jasmine", "karma-mocha-reporter", "karma-sourcemap-loader", "karma-webpack" // 前提要求 webpack已經(jīng)包含 ] }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/88432.html
摘要:核心功能就是啟動(dòng)一個(gè)服務(wù)并監(jiān)聽(tīng)項(xiàng)目文件改變,文件改變后再刷新服務(wù)器。 Karma 簡(jiǎn)介 Karma是Testacular的新名字,在2012年google開(kāi)源了Testacular,2013年Testacular改名為Karma。Karma是一個(gè)讓人感到非常神秘的名字,表示佛教中的緣分,因果報(bào)應(yīng),比Cassandra這種名字更讓人猜不透! Karma是一個(gè)基于Node.js的JavaS...
摘要:介紹本質(zhì)上是一個(gè)批量啟動(dòng)瀏覽器運(yùn)行測(cè)試源碼的工具運(yùn)行的結(jié)果以命令行的方式返回測(cè)試結(jié)果是否通過(guò)還是不通過(guò)監(jiān)聽(tīng)所有文件包括配置文件的變化一旦文件發(fā)生變化則發(fā)送信號(hào)給正在測(cè)試的服務(wù)然后通知瀏覽器,監(jiān)聽(tīng)頁(yè)面的的將會(huì)被刷新運(yùn)行,并將運(yùn)行結(jié)果發(fā)送給服務(wù) 介紹 Karma Karma本質(zhì)上是一個(gè)批量啟動(dòng)web瀏覽器運(yùn)行測(cè)試源碼的工具. 運(yùn)行的結(jié)果以 command line 命令行的方式返回 測(cè)試結(jié)...
摘要:在真正寫了一段時(shí)間的基礎(chǔ)組件和基礎(chǔ)工具后,才發(fā)現(xiàn)自動(dòng)化測(cè)試有很多好處。有了自動(dòng)化測(cè)試,開(kāi)發(fā)者會(huì)更加信任自己的代碼。由于維護(hù)測(cè)試用例也是一大筆開(kāi)銷畢竟沒(méi)有多少測(cè)試會(huì)專門幫前端寫業(yè)務(wù)測(cè)試用例,而前端使用的流程自動(dòng)化工具更是沒(méi)有測(cè)試參與了。 本文轉(zhuǎn)載自 天貓前端博客,更多精彩文章請(qǐng)進(jìn)入天貓前端博客查看 前言 為何要測(cè)試 以前不喜歡寫測(cè)試,主要是覺(jué)得編寫和維護(hù)測(cè)試用例非常的浪費(fèi)時(shí)間。在真正寫了...
摘要:而測(cè)試驅(qū)動(dòng)開(kāi)發(fā)技術(shù)并不只是單純的測(cè)試工作。需求向來(lái)就是軟件開(kāi)發(fā)過(guò)程中感覺(jué)最不好明確描述易變的東西。這里說(shuō)的需求不只是指用戶的需求,還包括對(duì)代碼 可能很多人和我一樣, 首次聽(tīng)到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說(shuō)呢? 在后端開(kāi)發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備受重視, 早在開(kāi)發(fā)工作啟動(dòng)之前, 他們就被邀請(qǐng)加入到項(xiàng)目中, 而且他們會(huì)跟客戶討論即將建成的平臺(tái)的...
摘要:而測(cè)試驅(qū)動(dòng)開(kāi)發(fā)技術(shù)并不只是單純的測(cè)試工作。需求向來(lái)就是軟件開(kāi)發(fā)過(guò)程中感覺(jué)最不好明確描述易變的東西。這里說(shuō)的需求不只是指用戶的需求,還包括對(duì)代碼 可能很多人和我一樣, 首次聽(tīng)到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說(shuō)呢? 在后端開(kāi)發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備受重視, 早在開(kāi)發(fā)工作啟動(dòng)之前, 他們就被邀請(qǐng)加入到項(xiàng)目中, 而且他們會(huì)跟客戶討論即將建成的平臺(tái)的...
閱讀 3335·2021-10-11 10:59
閱讀 2913·2021-10-11 10:58
閱讀 2308·2021-09-04 16:45
閱讀 2796·2019-08-30 15:44
閱讀 732·2019-08-30 15:44
閱讀 3255·2019-08-30 10:51
閱讀 1659·2019-08-29 18:46
閱讀 2814·2019-08-29 13:57