摘要:持續(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 ??為什么要編寫測(cè)試代碼
是一種可以運(yùn)行在瀏覽器以及nodejs 環(huán)境的前端測(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
摘要:持續(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é)...
摘要:持續(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...
摘要:懶惰,是促使人類科技發(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)域,我們也...
摘要:懶惰,是促使人類科技發(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)域,我們也...
閱讀 959·2019-08-30 14:24
閱讀 998·2019-08-30 14:13
閱讀 1805·2019-08-29 17:21
閱讀 2690·2019-08-29 13:44
閱讀 1665·2019-08-29 11:04
閱讀 449·2019-08-26 10:44
閱讀 2571·2019-08-23 14:04
閱讀 914·2019-08-23 12:08