摘要:介紹前身,創(chuàng)建出來的以下是官網(wǎng)對的相關(guān)特點(diǎn)介紹支持真實(shí)瀏覽器無瀏覽器熱更新,文件變化后自動測試測試框架無關(guān)性支持開源易測試持續(xù)集成安裝配置配置項(xiàng)自動監(jiān)控更新如果為相對路徑,則加上作為前綴配合運(yùn)行瀏覽器如果瀏覽器在指定時(shí)間
介紹
前身 Testacular, AngularJs Team 創(chuàng)建出來的. 以下是官網(wǎng)對Karma的相關(guān)特點(diǎn)介紹
支持真實(shí)瀏覽器, 無瀏覽器PhantomJS
熱更新,文件變化后自動測試
測試框架無關(guān)性 支持(Jasmine, Mocha, QUnit)
開源
易測試
持續(xù)集成
安裝npm install -g karma or npm install -D karma配置
karma init or karma init karma.conf.js配置項(xiàng)
-- autoWatch 自動監(jiān)控更新
-- basePath 如果 basePath 為相對路徑, 則加上 __dirname作為前綴, 配合files
-- browsers 運(yùn)行瀏覽器 ["Chrome", "Firefox"]
-- captureTimeout 如果瀏覽器在指定時(shí)間內(nèi)監(jiān)控失敗,karma將會刪殺死進(jìn)程并重啟, 如果重試3次都失敗,則放棄啟動
-- colors 輸出是否輸出顏色
-- exclude 忽略加載的文件列表
-- files 瀏覽器訪問的文件列表
-- hostname 主機(jī)名
-- logLevel 日志等級 LOG_DISABLE, LOG_ERROR, LOG_WARN, LOG_INFO, LOG_DEBUG
-- loggers 日志輸出
-- port 端口號
-- preprocessors 預(yù)處理
-- proxies 代理配置
-- reportSlowerThan 運(yùn)行慢時(shí)間標(biāo)準(zhǔn), 0 表示不開啟
-- 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庫匹配
-- watched 是否監(jiān)控文件變化
-- included 是否直接script引入
-- served 文件是否部署在 karma 的 web服務(wù)上
-- nocache 默認(rèn)為 false,表示開啟緩存
karma start
如果使用 karma start 啟動了服務(wù), 但沒通過監(jiān)聽文件變化自動運(yùn)行測試腳本, 可以手動執(zhí)行karma run測試.
瀏覽器配置{ browsers: ["Chrome", "Firefox"] }
注意: 大多數(shù)瀏覽器啟動需要安裝插件
# Install the launcher first with NPM: $ npm install karma-xxx-launcher --save-dev配置啟動插件
{ plugins: [ "karma-chrome-launcher", "karma-firefox-launcher" ] }設(shè)置瀏覽器啟動路徑
# 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, 通過 babel 或 ts解釋器 進(jìn)行轉(zhuǎ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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/88432.html
摘要:核心功能就是啟動一個(gè)服務(wù)并監(jiān)聽項(xiàng)目文件改變,文件改變后再刷新服務(wù)器。 Karma 簡介 Karma是Testacular的新名字,在2012年google開源了Testacular,2013年Testacular改名為Karma。Karma是一個(gè)讓人感到非常神秘的名字,表示佛教中的緣分,因果報(bào)應(yīng),比Cassandra這種名字更讓人猜不透! Karma是一個(gè)基于Node.js的JavaS...
摘要:介紹本質(zhì)上是一個(gè)批量啟動瀏覽器運(yùn)行測試源碼的工具運(yùn)行的結(jié)果以命令行的方式返回測試結(jié)果是否通過還是不通過監(jiān)聽所有文件包括配置文件的變化一旦文件發(fā)生變化則發(fā)送信號給正在測試的服務(wù)然后通知瀏覽器,監(jiān)聽頁面的的將會被刷新運(yùn)行,并將運(yùn)行結(jié)果發(fā)送給服務(wù) 介紹 Karma Karma本質(zhì)上是一個(gè)批量啟動web瀏覽器運(yùn)行測試源碼的工具. 運(yùn)行的結(jié)果以 command line 命令行的方式返回 測試結(jié)...
摘要:在真正寫了一段時(shí)間的基礎(chǔ)組件和基礎(chǔ)工具后,才發(fā)現(xiàn)自動化測試有很多好處。有了自動化測試,開發(fā)者會更加信任自己的代碼。由于維護(hù)測試用例也是一大筆開銷畢竟沒有多少測試會專門幫前端寫業(yè)務(wù)測試用例,而前端使用的流程自動化工具更是沒有測試參與了。 本文轉(zhuǎn)載自 天貓前端博客,更多精彩文章請進(jìn)入天貓前端博客查看 前言 為何要測試 以前不喜歡寫測試,主要是覺得編寫和維護(hù)測試用例非常的浪費(fèi)時(shí)間。在真正寫了...
摘要:而測試驅(qū)動開發(fā)技術(shù)并不只是單純的測試工作。需求向來就是軟件開發(fā)過程中感覺最不好明確描述易變的東西。這里說的需求不只是指用戶的需求,還包括對代碼 可能很多人和我一樣, 首次聽到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說呢? 在后端開發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備受重視, 早在開發(fā)工作啟動之前, 他們就被邀請加入到項(xiàng)目中, 而且他們會跟客戶討論即將建成的平臺的...
摘要:而測試驅(qū)動開發(fā)技術(shù)并不只是單純的測試工作。需求向來就是軟件開發(fā)過程中感覺最不好明確描述易變的東西。這里說的需求不只是指用戶的需求,還包括對代碼 可能很多人和我一樣, 首次聽到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說呢? 在后端開發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備受重視, 早在開發(fā)工作啟動之前, 他們就被邀請加入到項(xiàng)目中, 而且他們會跟客戶討論即將建成的平臺的...
閱讀 3365·2021-10-11 10:59
閱讀 2934·2021-10-11 10:58
閱讀 2321·2021-09-04 16:45
閱讀 2826·2019-08-30 15:44
閱讀 750·2019-08-30 15:44
閱讀 3268·2019-08-30 10:51
閱讀 1674·2019-08-29 18:46
閱讀 2827·2019-08-29 13:57