成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javascript CI篇(2)- Karma 基礎(chǔ)學(xué)習(xí)

Ku_Andrew / 1300人閱讀

摘要:核心功能就是啟動(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的JavaScript測(cè)試執(zhí)行過(guò)程管理工具(Test Runner)。該工具可用于測(cè)試所有主流Web瀏覽器,也可集成到CI(Continuous integration)工具,也可和其他代碼編輯器一起使用。這個(gè)測(cè)試工具的一個(gè)強(qiáng)大特性就是,它可以監(jiān)控(Watch)文件的變化,然后自行執(zhí)行,通過(guò)console.log顯示測(cè)試結(jié)果。

Karma 和 mocha,Qunit,jasmine區(qū)別
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.

引用官方的說(shuō)明,karma不是一個(gè)測(cè)試框架,沒(méi)有斷言庫(kù)。Karma只是運(yùn)行了一個(gè)HTTP服務(wù)并生成一個(gè)測(cè)試入口HTML文件Test Runner。所以使用Karma需要自己選擇測(cè)試框架,主流的測(cè)試框架有:

Jasmine

Mocha

QUnit

Karma 默認(rèn)的是使用jasmine

當(dāng)你項(xiàng)目有以下需求的時(shí)候,可以考慮使用Karma

你想在真實(shí)的瀏覽器中測(cè)試代碼

你想測(cè)試代碼在多平臺(tái),多個(gè)瀏覽器(桌面,移動(dòng)設(shè)備,平臺(tái))

你想在本地開(kāi)發(fā)期間執(zhí)行測(cè)試

你想在持續(xù)集成服務(wù)器執(zhí)行測(cè)試

你想執(zhí)行測(cè)試在每次保存

You love your terminal.

You don"t want your (testing) life to suck.

你想使用Instanbul去自動(dòng)化生成覆蓋率報(bào)告

You want to use RequireJS for your source files.

正式開(kāi)始使用 安裝
# 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就可以了,我們使用默認(rèn)的測(cè)試框架jasmine

啟動(dòng)
 karma start my.conf.js

我的項(xiàng)目中會(huì)報(bào)找不到Error: Cannot find module "jasmine-core"錯(cuò)誤,開(kāi)始采用的是 npm install --save-dev的模式有這個(gè)問(wèn)題,分析了源碼覺(jué)得是他們代碼或者是node 環(huán)境下CMD的問(wèn)題,我運(yùn)行的Node版本是6.9.1。后來(lái)通過(guò)npm install -g 的方式暫時(shí)修復(fù)了

karma.conf.js
  config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: "",
    
    // 測(cè)試框架
    frameworks: ["jasmine"],


    // 要監(jiān)聽(tīng)的文件列表,支持通配符模式
    files: [**/*.test.js],

    // 要排除的文件列表,支持通配符
    exclude: [**/*.js],

    // 在文件提交給瀏覽器做預(yù)處理
    // 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
  })
}
總結(jié)

是不是覺(jué)得Karma挺簡(jiǎn)單的?確實(shí)是挺簡(jiǎn)單的,這就是Test-Runner而不是Test Framework。Karma核心功能就是啟動(dòng)一個(gè)服務(wù)并監(jiān)聽(tīng)項(xiàng)目文件改變,文件改變后再刷新服務(wù)器。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84168.html

相關(guān)文章

  • Javascript CI(3)- Karma + Jasmine + istanbul 集成

    摘要:腳本修改配置文件這里要注意,預(yù)處理的文件是源碼,而不是測(cè)試文件,因?yàn)槲覀円樵创a的測(cè)試覆蓋率的配置這兩個(gè)覆蓋率報(bào)告運(yùn)行運(yùn)行后直接在網(wǎng)頁(yè)中點(diǎn)可以看測(cè)試情況。如果你看覆蓋率需要到項(xiàng)目目錄找到對(duì)應(yīng)瀏覽器地下的文件。 karma 和 jasmine 基礎(chǔ) 請(qǐng)查看Jasmine基礎(chǔ)學(xué)習(xí)和Karma基礎(chǔ)學(xué)習(xí) 安裝 //karma npm install karma --save-dev //ja...

    wwolf 評(píng)論0 收藏0
  • Javascript CI(4)- Github + Travis 持續(xù)集成

    摘要:簡(jiǎn)介是目前新興的開(kāi)源持續(xù)集成構(gòu)建項(xiàng)目,它與,的很明顯的特別在于采用格式,簡(jiǎn)潔清新獨(dú)樹(shù)一幟。目前大多數(shù)的項(xiàng)目都已經(jīng)移入到的構(gòu)建隊(duì)列中,據(jù)說(shuō)每天運(yùn)行超過(guò)次完整構(gòu)建。查看構(gòu)建情況增加逼格首先要是一個(gè)文檔。是由提供的真實(shí)的構(gòu)建情況。 Travis簡(jiǎn)介 Travis CI(continuous integration )是目前新興的開(kāi)源持續(xù)集成構(gòu)建項(xiàng)目,它與jenkins,GO的很明顯的特別在于...

    pingink 評(píng)論0 收藏0
  • 自動(dòng)化測(cè)試(未完,后續(xù)學(xué)習(xí)之后會(huì)補(bǔ)充更具體的)

    摘要:斷言斷言是什么模塊提供了一組簡(jiǎn)單的斷言測(cè)試,可用于測(cè)試不變量。環(huán)境是他們不必設(shè)置大量配置的環(huán)境,而是開(kāi)發(fā)人員可以編寫(xiě)代碼并從測(cè)試中獲得即時(shí)反饋的地方。每當(dāng)測(cè)試時(shí),結(jié)果將出現(xiàn)在您的拉取請(qǐng)求中,您的歷史記錄將在其控制面板中提供。 Node assert (斷言) 斷言是什么 assert 模塊提供了一組簡(jiǎn)單的斷言測(cè)試,可用于測(cè)試不變量。 存在嚴(yán)格模式(strict)和遺留模式(legacy...

    姘存按 評(píng)論0 收藏0
  • 為你的JavaScript代碼寫(xiě)測(cè)試

    摘要:下面會(huì)講解如何使用以及,來(lái)為我們的代碼編寫(xiě)測(cè)試。我們不妨先選擇前者綜上所述,我們要使用組合來(lái)為我們的代碼寫(xiě)測(cè)試。他們分別會(huì)在每個(gè)測(cè)試的之前和之后執(zhí)行一次。副本最后還有一個(gè)問(wèn)題是如何結(jié)合來(lái)為我們的代碼編寫(xiě)測(cè)試。 下面會(huì)講解如何使用 karama, jasmine 以及 webpack,來(lái)為我們的 ES6 代碼編寫(xiě)測(cè)試。(最后我寫(xiě)了一個(gè)可用的例子,請(qǐng)查看 ES2015-Starter-Ki...

    FleyX 評(píng)論0 收藏0
  • Omi原理-環(huán)境搭建

    摘要:相關(guān)依賴有和其余都是單元測(cè)試相關(guān)依賴注意,這里使用了。因?yàn)槭褂每蚣苤С趾褪褂檬菫榱嗽趩卧獪y(cè)試?yán)锩媸褂玫暮偷日Z(yǔ)法。腳本其中生成目錄的文件執(zhí)行單元測(cè)試編譯的編譯的在中,會(huì)根據(jù)去設(shè)置不同的入口文件。 環(huán)境搭建 Omi框架使用 Webpack + ES6 的方式去開(kāi)發(fā);使用karma+jasmine來(lái)作為Omi的測(cè)試工具。 Karma介紹 Karma是一個(gè)基于Node.js的JavaScrip...

    lncwwn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<