摘要:持續(xù)集成指的是只要代碼有變更,就自動運行構(gòu)建和測試,反饋運行結(jié)果。我們無法保證之前的邏輯完全符合曾經(jīng)的要求,這時候我們就需要編寫測試代碼對功能點進行測試。使用直接在命令行運行測試用例。是一個可以在命令行對頁面進行測試的框架。
什么是CI
CI 提供的是持續(xù)集成服務(wù)(Continuous Integration,簡稱 CI)。持續(xù)集成指的是只要代碼有變更,就自動運行構(gòu)建和測試,反饋運行結(jié)果。什么是headless Browser
headless Browser 中文翻譯,無頭瀏覽器。是一種沒有界面的瀏覽器,可以在命令窗口中被運行。什么是mocha
?? Simple, flexible, fun JavaScript test framework for Node.js & The Browser ??為什么要編寫測試代碼
是一種可以運行在瀏覽器以及nodejs 環(huán)境的前端測試框架
對于迭代需求,我們?nèi)祟惥帉懙拇a,只能保證在當(dāng)前事件節(jié)點的正確性,隨著事件的推移,代碼的變動,以及人為關(guān)系。我們無法保證之前的邏輯完全符合曾經(jīng)的要求,這時候我們就需要編寫測試代碼對功能點進行測試。
測試不是一次性的,而是持續(xù)的,永久的。
對于開源框架而言,測試的覆蓋面積更代表了框架的可靠性;也能使用自動化測試更好的約束貢獻者提交的PR
開始使用mocha 對代碼進行測試首先呢,我要開始編寫一個add.js含有一個方法add,這個方法我希望獲取 a+b 的值是一個Number
function return(a,b){ reutnr a+b }
好的現(xiàn)在我可以對這個方法進行測試了
增加一個用于測試index.html(為什么要新增一個html呢,因為有些js只能運行在瀏覽器中,如果你的代碼完全可以使用node進行測試,就不需要使用無頭瀏覽器直接使用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)在我們就可以直接運行index.html查看效果了,當(dāng)然可以開啟一個http服務(wù)器查看,可以使用http-server快速開啟一個http服務(wù)。
在瀏覽器運行會出現(xiàn)以下提示,表示測試通過
如果想要添加更多測試用例可以繼續(xù)添加更多的測試代碼。
接下來很顯然,我們在持續(xù)編寫add.js的時候,并不愿意每次都打開網(wǎng)頁去運行并查看代碼測試情況。
這時候,headless要開始大展拳腳了。
使用mocha-chrome 直接在命令行運行mocha測試用例。mocha-chrome是一個可以在命令行對mocha頁面進行測試的框架。它可以將測試結(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)在控制臺中
項目地址https://github.com/channg/ci-...
這時候,當(dāng)我們測試項目的時候就不必須打開瀏覽器去檢查代碼是否通過驗證了,只要輸入npm test就可以在控制臺看到效果,是不是變得很輕松了呢。
繼續(xù)當(dāng)我們測試用例過長,占用時間過多,或者需要其他前置操作,或者需要測試多個版本,多個系統(tǒng)的兼容性。我們應(yīng)該如何做呢。很明顯,要使用CI。
所以,我們并不想每次在本地進行測試,這里我們將要使用travis ci。
關(guān)于travos ci我們可以閱讀阮一峰的博文
在項目根目錄創(chuàng)建.travis.yml
內(nèi)容如下。
sudo: required language: node_js node_js: - "8" - "9"
當(dāng)你在travos ci開啟了repository you want to build按鈕的時候。每次項目的提交就會觸發(fā)ci的構(gòu)建。
而且你可以生成github小圖標(biāo)放在項目的readme中,比如說這個 是不是很酷。
點擊這個小徽章,你就可以查看我的項目在ci構(gòu)建的過程。
查看travis ci 的文檔,去獲取更多的資料 https://docs.travis-ci.com/
結(jié)束基本的測試方法你已經(jīng)掌握了,現(xià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/8828.html
摘要:持續(xù)集成指的是只要代碼有變更,就自動運行構(gòu)建和測試,反饋運行結(jié)果。我們無法保證之前的邏輯完全符合曾經(jīng)的要求,這時候我們就需要編寫測試代碼對功能點進行測試。使用直接在命令行運行測試用例。是一個可以在命令行對頁面進行測試的框架。 什么是CI CI 提供的是持續(xù)集成服務(wù)(Continuous Integration,簡稱 CI)。持續(xù)集成指的是只要代碼有變更,就自動運行構(gòu)建和測試,反饋運行結(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ā)展的重要因素。我們告別刀耕火種的時代,正是因為人們不斷地通過發(fā)明工具和優(yōu)化精簡手動的流程來實現(xiàn)效率的提升,讓人們能專注于自己專業(yè)的領(lǐng)域,其他的事情交給機械去處理。而同樣在前端的領(lǐng)域,我們也...
摘要:懶惰,是促使人類科技發(fā)展的重要因素。就筆者了解,目前前端領(lǐng)域比較流行的單元測試框架有等等。。什么你想打開控制臺粘帖代碼執(zhí)行為了拯救你于無盡的加班測試中,是時候推薦你接入使用了。 懶惰,是促使人類科技發(fā)展的重要因素。我們告別刀耕火種的時代,正是因為人們不斷地通過發(fā)明工具和優(yōu)化精簡手動的流程來實現(xiàn)效率的提升,讓人們能專注于自己專業(yè)的領(lǐng)域,其他的事情交給機械去處理。而同樣在前端的領(lǐng)域,我們也...
閱讀 1338·2023-04-25 15:21
閱讀 2670·2021-11-24 10:23
閱讀 3397·2021-10-11 10:59
閱讀 3242·2021-09-03 10:28
閱讀 1731·2019-08-26 13:45
閱讀 2319·2019-08-26 12:11
閱讀 921·2019-08-26 12:00
閱讀 1705·2019-08-26 10:44