摘要:核心功能就是啟動一個服務并監聽項目文件改變,文件改變后再刷新服務器。
Karma 簡介
Karma是Testacular的新名字,在2012年google開源了Testacular,2013年Testacular改名為Karma。Karma是一個讓人感到非常神秘的名字,表示佛教中的緣分,因果報應,比Cassandra這種名字更讓人猜不透!
Karma是一個基于Node.js的JavaScript測試執行過程管理工具(Test Runner)。該工具可用于測試所有主流Web瀏覽器,也可集成到CI(Continuous integration)工具,也可和其他代碼編輯器一起使用。這個測試工具的一個強大特性就是,它可以監控(Watch)文件的變化,然后自行執行,通過console.log顯示測試結果。
Karma 和 mocha,Qunit,jasmine區別But I still want to use _insert testing library_ Karma is not a testing framework, nor an assertion library. Karma just launches an HTTP server, and generates the test runner HTML file you probably already know from your favourite testing framework. So for testing purposes you can use pretty much anything you like. There are already plugins for most of the common testing frameworks: Jasmine Mocha QUnit and many others If you can"t find an adapter for your favourite framework, don"t worry and write your own. It"s not that hard and we are here to help.
引用官方的說明,karma不是一個測試框架,沒有斷言庫。Karma只是運行了一個HTTP服務并生成一個測試入口HTML文件Test Runner。所以使用Karma需要自己選擇測試框架,主流的測試框架有:
Jasmine
Mocha
QUnit
Karma 默認的是使用jasmine
當你項目有以下需求的時候,可以考慮使用Karma你想在真實的瀏覽器中測試代碼
你想測試代碼在多平臺,多個瀏覽器(桌面,移動設備,平臺)
你想在本地開發期間執行測試
你想在持續集成服務器執行測試
你想執行測試在每次保存
You love your terminal.
You don"t want your (testing) life to suck.
你想使用Instanbul去自動化生成覆蓋率報告
You want to use RequireJS for your source files.
正式開始使用 安裝# Install Karma: $ npm install karma --save-dev # Install plugins that your project needs: $ npm install karma-jasmine karma-chrome-launcher jasmine-core --save-dev初始化配置文件
karma init my.conf.js
這里一路按enter就可以了,我們使用默認的測試框架jasmine
啟動karma start my.conf.js
我的項目中會報找不到Error: Cannot find module "jasmine-core"錯誤,開始采用的是 npm install --save-dev的模式有這個問題,分析了源碼覺得是他們代碼或者是node 環境下CMD的問題,我運行的Node版本是6.9.1。后來通過npm install -g 的方式暫時修復了
karma.conf.jsconfig.set({ // base path that will be used to resolve all patterns (eg. files, exclude) basePath: "", // 測試框架 frameworks: ["jasmine"], // 要監聽的文件列表,支持通配符模式 files: [**/*.test.js], // 要排除的文件列表,支持通配符 exclude: [**/*.js], // 在文件提交給瀏覽器做預處理 // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { }, // test results reporter to use // possible values: "dots", "progress" // available reporters: https://npmjs.org/browse/keyword/karma-reporter reporters: ["progress"], // 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, // 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, // Concurrency level // how many browser should be started simultaneous concurrency: Infinity }) }總結
是不是覺得Karma挺簡單的?確實是挺簡單的,這就是Test-Runner而不是Test Framework。Karma核心功能就是啟動一個服務并監聽項目文件改變,文件改變后再刷新服務器。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84168.html
摘要:腳本修改配置文件這里要注意,預處理的文件是源碼,而不是測試文件,因為我們要查源碼的測試覆蓋率的配置這兩個覆蓋率報告運行運行后直接在網頁中點可以看測試情況。如果你看覆蓋率需要到項目目錄找到對應瀏覽器地下的文件。 karma 和 jasmine 基礎 請查看Jasmine基礎學習和Karma基礎學習 安裝 //karma npm install karma --save-dev //ja...
摘要:簡介是目前新興的開源持續集成構建項目,它與,的很明顯的特別在于采用格式,簡潔清新獨樹一幟。目前大多數的項目都已經移入到的構建隊列中,據說每天運行超過次完整構建。查看構建情況增加逼格首先要是一個文檔。是由提供的真實的構建情況。 Travis簡介 Travis CI(continuous integration )是目前新興的開源持續集成構建項目,它與jenkins,GO的很明顯的特別在于...
摘要:斷言斷言是什么模塊提供了一組簡單的斷言測試,可用于測試不變量。環境是他們不必設置大量配置的環境,而是開發人員可以編寫代碼并從測試中獲得即時反饋的地方。每當測試時,結果將出現在您的拉取請求中,您的歷史記錄將在其控制面板中提供。 Node assert (斷言) 斷言是什么 assert 模塊提供了一組簡單的斷言測試,可用于測試不變量。 存在嚴格模式(strict)和遺留模式(legacy...
摘要:下面會講解如何使用以及,來為我們的代碼編寫測試。我們不妨先選擇前者綜上所述,我們要使用組合來為我們的代碼寫測試。他們分別會在每個測試的之前和之后執行一次。副本最后還有一個問題是如何結合來為我們的代碼編寫測試。 下面會講解如何使用 karama, jasmine 以及 webpack,來為我們的 ES6 代碼編寫測試。(最后我寫了一個可用的例子,請查看 ES2015-Starter-Ki...
摘要:相關依賴有和其余都是單元測試相關依賴注意,這里使用了。因為使用框架支持和使用是為了在單元測試里面使用的和等語法。腳本其中生成目錄的文件執行單元測試編譯的編譯的在中,會根據去設置不同的入口文件。 環境搭建 Omi框架使用 Webpack + ES6 的方式去開發;使用karma+jasmine來作為Omi的測試工具。 Karma介紹 Karma是一個基于Node.js的JavaScrip...
閱讀 3140·2021-09-28 09:36
閱讀 3685·2021-09-08 09:45
閱讀 1793·2021-09-01 10:43
閱讀 3470·2019-08-30 12:44
閱讀 3345·2019-08-29 17:25
閱讀 1369·2019-08-29 11:03
閱讀 1991·2019-08-26 13:36
閱讀 693·2019-08-23 18:24