摘要:持續(xù)集成指的是只要代碼有變更,就自動運(yùn)行構(gòu)建和測試,反饋運(yùn)行結(jié)果。我們無法保證之前的邏輯完全符合曾經(jīng)的要求,這時候我們就需要編寫測試代碼對功能點(diǎn)進(jìn)行測試。使用直接在命令行運(yùn)行測試用例。是一個可以在命令行對頁面進(jìn)行測試的框架。
什么是CI
CI 提供的是持續(xù)集成服務(wù)(Continuous Integration,簡稱 CI)。持續(xù)集成指的是只要代碼有變更,就自動運(yùn)行構(gòu)建和測試,反饋運(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)境的前端測試框架
對于迭代需求,我們?nèi)祟惥帉懙拇a,只能保證在當(dāng)前事件節(jié)點(diǎn)的正確性,隨著事件的推移,代碼的變動,以及人為關(guān)系。我們無法保證之前的邏輯完全符合曾經(jīng)的要求,這時候我們就需要編寫測試代碼對功能點(diǎn)進(jìn)行測試。
測試不是一次性的,而是持續(xù)的,永久的。
對于開源框架而言,測試的覆蓋面積更代表了框架的可靠性;也能使用自動化測試更好的約束貢獻(xiàn)者提交的PR
開始使用mocha 對代碼進(jìn)行測試首先呢,我要開始編寫一個add.js含有一個方法add,這個方法我希望獲取 a+b 的值是一個Number
function return(a,b){ reutnr a+b }
好的現(xiàn)在我可以對這個方法進(jìn)行測試了
增加一個用于測試index.html(為什么要新增一個html呢,因?yàn)橛行﹋s只能運(yùn)行在瀏覽器中,如果你的代碼完全可以使用node進(jìn)行測試,就不需要使用無頭瀏覽器直接使用node 測試就可以了)
Mocha Test
編寫 test.js
chai.expect是一個chai.js的斷言方法,如果出現(xiàn)問題,則會拋出一個異常 文檔地址 http://www.chaijs.com/describe 是mocha的測試取款,每一個it都會執(zhí)行一個測試用例
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)然可以開啟一個http服務(wù)器查看,可以使用http-server快速開啟一個http服務(wù)。
在瀏覽器運(yùn)行會出現(xiàn)以下提示,表示測試通過
如果想要添加更多測試用例可以繼續(xù)添加更多的測試代碼。
接下來很顯然,我們在持續(xù)編寫add.js的時候,并不愿意每次都打開網(wǎng)頁去運(yùn)行并查看代碼測試情況。
這時候,headless要開始大展拳腳了。
使用mocha-chrome 直接在命令行運(yùn)行mocha測試用例。mocha-chrome是一個可以在命令行對mocha頁面進(jìn)行測試的框架。它可以將測試結(jié)果展現(xiàn)在控制臺。
npm init ... npm i mocha-chrome --save-dev
修改package.json增加
"scripts":{ "test": "mocha-chrome ./test-some/index.html" }
調(diào)用命令
npm test
這時候,正確的提示會出現(xiàn)在控制臺中
項(xiàng)目地址https://github.com/channg/ci-...
這時候,當(dāng)我們測試項(xiàng)目的時候就不必須打開瀏覽器去檢查代碼是否通過驗(yàn)證了,只要輸入npm test就可以在控制臺看到效果,是不是變得很輕松了呢。
繼續(xù)當(dāng)我們測試用例過長,占用時間過多,或者需要其他前置操作,或者需要測試多個版本,多個系統(tǒng)的兼容性。我們應(yīng)該如何做呢。很明顯,要使用CI。
所以,我們并不想每次在本地進(jìn)行測試,這里我們將要使用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按鈕的時候。每次項(xiàng)目的提交就會觸發(fā)ci的構(gòu)建。
而且你可以生成github小圖標(biāo)放在項(xiàng)目的readme中,比如說這個 是不是很酷。
點(diǎn)擊這個小徽章,你就可以查看我的項(xiàng)目在ci構(gòu)建的過程。
查看travis ci 的文檔,去獲取更多的資料 https://docs.travis-ci.com/
結(jié)束基本的測試方法你已經(jīng)掌握了,現(xiàn)在可以去了解更多了,如果有問題,可以查看我的項(xiàng)目進(jìn)行對比
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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/96242.html
摘要:持續(xù)集成指的是只要代碼有變更,就自動運(yùn)行構(gòu)建和測試,反饋運(yùn)行結(jié)果。我們無法保證之前的邏輯完全符合曾經(jīng)的要求,這時候我們就需要編寫測試代碼對功能點(diǎn)進(jìn)行測試。使用直接在命令行運(yùn)行測試用例。是一個可以在命令行對頁面進(jìn)行測試的框架。 什么是CI CI 提供的是持續(xù)集成服務(wù)(Continuous Integration,簡稱 CI)。持續(xù)集成指的是只要代碼有變更,就自動運(yùn)行構(gòu)建和測試,反饋運(yùn)行結(jié)...
摘要:持續(xù)集成單元測試是開源的一個基于的測試執(zhí)行過程管理工具。表示測試套件,是一序列相關(guān)程序的測試表示單元測試,也就是測試的最小單位。 持續(xù)集成 單元測試(unit) karma Karma 是Google開源的一個基于Node.js 的 JavaScript 測試執(zhí)行過程管理工具(Test Runner)。該工具可用于測試所有主流Web瀏覽器,也可集成到 CI (Continuous in...
摘要:懶惰,是促使人類科技發(fā)展的重要因素。就筆者了解,目前前端領(lǐng)域比較流行的單元測試框架有等等。。什么你想打開控制臺粘帖代碼執(zhí)行為了拯救你于無盡的加班測試中,是時候推薦你接入使用了。 懶惰,是促使人類科技發(fā)展的重要因素。我們告別刀耕火種的時代,正是因?yàn)槿藗儾粩嗟赝ㄟ^發(fā)明工具和優(yōu)化精簡手動的流程來實(shí)現(xiàn)效率的提升,讓人們能專注于自己專業(yè)的領(lǐng)域,其他的事情交給機(jī)械去處理。而同樣在前端的領(lǐng)域,我們也...
摘要:懶惰,是促使人類科技發(fā)展的重要因素。就筆者了解,目前前端領(lǐng)域比較流行的單元測試框架有等等。。什么你想打開控制臺粘帖代碼執(zhí)行為了拯救你于無盡的加班測試中,是時候推薦你接入使用了。 懶惰,是促使人類科技發(fā)展的重要因素。我們告別刀耕火種的時代,正是因?yàn)槿藗儾粩嗟赝ㄟ^發(fā)明工具和優(yōu)化精簡手動的流程來實(shí)現(xiàn)效率的提升,讓人們能專注于自己專業(yè)的領(lǐng)域,其他的事情交給機(jī)械去處理。而同樣在前端的領(lǐng)域,我們也...
閱讀 955·2019-08-30 14:24
閱讀 987·2019-08-30 14:13
閱讀 1799·2019-08-29 17:21
閱讀 2661·2019-08-29 13:44
閱讀 1654·2019-08-29 11:04
閱讀 438·2019-08-26 10:44
閱讀 2564·2019-08-23 14:04
閱讀 908·2019-08-23 12:08