国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用CI、headless Browser、mocha對(duì)前端代碼進(jìn)行測(cè)試

fizz / 589人閱讀

摘要:持續(xù)集成指的是只要代碼有變更,就自動(dòng)運(yùn)行構(gòu)建和測(cè)試,反饋運(yùn)行結(jié)果。我們無法保證之前的邏輯完全符合曾經(jīng)的要求,這時(shí)候我們就需要編寫測(cè)試代碼對(duì)功能點(diǎn)進(jìn)行測(cè)試。使用直接在命令行運(yùn)行測(cè)試用例。是一個(gè)可以在命令行對(duì)頁面進(jìn)行測(cè)試的框架。

什么是CI
CI 提供的是持續(xù)集成服務(wù)(Continuous Integration,簡(jiǎn)稱 CI)。持續(xù)集成指的是只要代碼有變更,就自動(dòng)運(yùn)行構(gòu)建和測(cè)試,反饋運(yùn)行結(jié)果。
什么是headless Browser
headless Browser 中文翻譯,無頭瀏覽器。是一種沒有界面的瀏覽器,可以在命令窗口中被運(yùn)行。
什么是mocha
?? Simple, flexible, fun JavaScript test framework for Node.js & The Browser ??
是一種可以運(yùn)行在瀏覽器以及nodejs 環(huán)境的前端測(cè)試框架
為什么要編寫測(cè)試代碼

對(duì)于迭代需求,我們?nèi)祟惥帉懙拇a,只能保證在當(dāng)前事件節(jié)點(diǎn)的正確性,隨著事件的推移,代碼的變動(dòng),以及人為關(guān)系。我們無法保證之前的邏輯完全符合曾經(jīng)的要求,這時(shí)候我們就需要編寫測(cè)試代碼對(duì)功能點(diǎn)進(jìn)行測(cè)試。
測(cè)試不是一次性的,而是持續(xù)的永久的

對(duì)于開源框架而言,測(cè)試的覆蓋面積更代表了框架的可靠性;也能使用自動(dòng)化測(cè)試更好的約束貢獻(xiàn)者提交的PR

開始使用mocha 對(duì)代碼進(jìn)行測(cè)試

首先呢,我要開始編寫一個(gè)add.js含有一個(gè)方法add,這個(gè)方法我希望獲取 a+b 的值是一個(gè)Number

function return(a,b){
    reutnr a+b
}
    

好的現(xiàn)在我可以對(duì)這個(gè)方法進(jìn)行測(cè)試了

增加一個(gè)用于測(cè)試index.html(為什么要新增一個(gè)html呢,因?yàn)橛行﹋s只能運(yùn)行在瀏覽器中,如果你的代碼完全可以使用node進(jìn)行測(cè)試,就不需要使用無頭瀏覽器直接使用node 測(cè)試就可以了)




    Mocha Test
    
    
    
    


編寫 test.js

chai.expect是一個(gè)chai.js的斷言方法,如果出現(xiàn)問題,則會(huì)拋出一個(gè)異常 文檔地址 http://www.chaijs.com/

describe 是mocha的測(cè)試取款,每一個(gè)it都會(huì)執(zhí)行一個(gè)測(cè)試用例

var expect = chai.expect;

describe("ADD.JS TEST", function() {
  it("add(1,1)", function() {
    expect(add(1,1)).to.equal(2)
  });
})

現(xiàn)在我們就可以直接運(yùn)行index.html查看效果了,當(dāng)然可以開啟一個(gè)http服務(wù)器查看,可以使用http-server快速開啟一個(gè)http服務(wù)。

在瀏覽器運(yùn)行會(huì)出現(xiàn)以下提示,表示測(cè)試通過

如果想要添加更多測(cè)試用例可以繼續(xù)添加更多的測(cè)試代碼。

接下來

很顯然,我們?cè)诔掷m(xù)編寫add.js的時(shí)候,并不愿意每次都打開網(wǎng)頁去運(yùn)行并查看代碼測(cè)試情況。

這時(shí)候,headless要開始大展拳腳了。

使用mocha-chrome 直接在命令行運(yùn)行mocha測(cè)試用例。mocha-chrome是一個(gè)可以在命令行對(duì)mocha頁面進(jìn)行測(cè)試的框架。它可以將測(cè)試結(jié)果展現(xiàn)在控制臺(tái)。

npm init 
...
npm i mocha-chrome --save-dev

修改package.json增加

  "scripts":{
    "test": "mocha-chrome ./test-some/index.html"
  }

調(diào)用命令

npm test

這時(shí)候,正確的提示會(huì)出現(xiàn)在控制臺(tái)中

項(xiàng)目地址https://github.com/channg/ci-...

這時(shí)候,當(dāng)我們測(cè)試項(xiàng)目的時(shí)候就不必須打開瀏覽器去檢查代碼是否通過驗(yàn)證了,只要輸入npm test就可以在控制臺(tái)看到效果,是不是變得很輕松了呢。

繼續(xù)

當(dāng)我們測(cè)試用例過長(zhǎng),占用時(shí)間過多,或者需要其他前置操作,或者需要測(cè)試多個(gè)版本,多個(gè)系統(tǒng)的兼容性。我們應(yīng)該如何做呢。很明顯,要使用CI

所以,我們并不想每次在本地進(jìn)行測(cè)試,這里我們將要使用travis ci

關(guān)于travos ci我們可以閱讀阮一峰的博文

在項(xiàng)目根目錄創(chuàng)建.travis.yml
內(nèi)容如下。

sudo: required
language: node_js
node_js:
  - "8"
  - "9"

當(dāng)你在travos ci開啟了repository you want to build按鈕的時(shí)候。每次項(xiàng)目的提交就會(huì)觸發(fā)ci的構(gòu)建。

而且你可以生成github小圖標(biāo)放在項(xiàng)目的readme中,比如說這個(gè) 是不是很酷。

點(diǎn)擊這個(gè)小徽章,你就可以查看我的項(xiàng)目在ci構(gòu)建的過程。

查看travis ci 的文檔,去獲取更多的資料 https://docs.travis-ci.com/

結(jié)束

基本的測(cè)試方法你已經(jīng)掌握了,現(xiàn)在可以去了解更多了,如果有問題,可以查看我的項(xiàng)目進(jìn)行對(duì)比
https://github.com/channg/ci-...

更多資源

https://docs.travis-ci.com/

http://www.chaijs.com/

https://mochajs.org/

https://github.com/shellscape...

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/96242.html

相關(guān)文章

  • 使用CIheadless Browsermocha對(duì)前端代碼進(jìn)行測(cè)試

    摘要:持續(xù)集成指的是只要代碼有變更,就自動(dòng)運(yùn)行構(gòu)建和測(cè)試,反饋運(yùn)行結(jié)果。我們無法保證之前的邏輯完全符合曾經(jīng)的要求,這時(shí)候我們就需要編寫測(cè)試代碼對(duì)功能點(diǎn)進(jìn)行測(cè)試。使用直接在命令行運(yùn)行測(cè)試用例。是一個(gè)可以在命令行對(duì)頁面進(jìn)行測(cè)試的框架。 什么是CI CI 提供的是持續(xù)集成服務(wù)(Continuous Integration,簡(jiǎn)稱 CI)。持續(xù)集成指的是只要代碼有變更,就自動(dòng)運(yùn)行構(gòu)建和測(cè)試,反饋運(yùn)行結(jié)...

    idisfkj 評(píng)論0 收藏0
  • 持續(xù)集成之測(cè)試

    摘要:持續(xù)集成單元測(cè)試是開源的一個(gè)基于的測(cè)試執(zhí)行過程管理工具。表示測(cè)試套件,是一序列相關(guān)程序的測(cè)試表示單元測(cè)試,也就是測(cè)試的最小單位。 持續(xù)集成 單元測(cè)試(unit) karma Karma 是Google開源的一個(gè)基于Node.js 的 JavaScript 測(cè)試執(zhí)行過程管理工具(Test Runner)。該工具可用于測(cè)試所有主流Web瀏覽器,也可集成到 CI (Continuous in...

    GraphQuery 評(píng)論0 收藏0
  • 代碼測(cè)試:項(xiàng)目穩(wěn)健的有力保證

    摘要:懶惰,是促使人類科技發(fā)展的重要因素。就筆者了解,目前前端領(lǐng)域比較流行的單元測(cè)試框架有等等。。什么你想打開控制臺(tái)粘帖代碼執(zhí)行為了拯救你于無盡的加班測(cè)試中,是時(shí)候推薦你接入使用了。 懶惰,是促使人類科技發(fā)展的重要因素。我們告別刀耕火種的時(shí)代,正是因?yàn)槿藗儾粩嗟赝ㄟ^發(fā)明工具和優(yōu)化精簡(jiǎn)手動(dòng)的流程來實(shí)現(xiàn)效率的提升,讓人們能專注于自己專業(yè)的領(lǐng)域,其他的事情交給機(jī)械去處理。而同樣在前端的領(lǐng)域,我們也...

    ASCH 評(píng)論0 收藏0
  • 代碼測(cè)試:項(xiàng)目穩(wěn)健的有力保證

    摘要:懶惰,是促使人類科技發(fā)展的重要因素。就筆者了解,目前前端領(lǐng)域比較流行的單元測(cè)試框架有等等。。什么你想打開控制臺(tái)粘帖代碼執(zhí)行為了拯救你于無盡的加班測(cè)試中,是時(shí)候推薦你接入使用了。 懶惰,是促使人類科技發(fā)展的重要因素。我們告別刀耕火種的時(shí)代,正是因?yàn)槿藗儾粩嗟赝ㄟ^發(fā)明工具和優(yōu)化精簡(jiǎn)手動(dòng)的流程來實(shí)現(xiàn)效率的提升,讓人們能專注于自己專業(yè)的領(lǐng)域,其他的事情交給機(jī)械去處理。而同樣在前端的領(lǐng)域,我們也...

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

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

0條評(píng)論

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