亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

在Shell中進(jìn)行獨(dú)立的集成測(cè)試

HelKyle / 3706人閱讀

摘要:我可以在不同的語(yǔ)言和框架之間進(jìn)行切換,而不需要對(duì)測(cè)試腳本做任何改變。對(duì)于它的價(jià)值,的主旨是隨時(shí)愉快地運(yùn)行在零單元測(cè)試的生產(chǎn)環(huán)境下。我只需要通過自己的基于的測(cè)試即可。

翻譯:瘋狂的技術(shù)宅
原文:https://zachholman.com/posts/...

本文首發(fā)微信公眾號(hào):jingchengyideng
歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章


我在開發(fā) during.com 時(shí)創(chuàng)建了一系列的微服務(wù),它們被用來做一些同步、導(dǎo)入和單調(diào)繁重?cái)?shù)據(jù)處理之類的工作。

如果你對(duì)微服務(wù)不熟悉,那么它只是一個(gè)花哨的名詞而已,意思就是“讓我們把這些該死的業(yè)務(wù)邏輯散落的到處都是!”

不管怎樣,我的微服務(wù)到處都是,嗯,的確是“微”。不過我絕對(duì)不是一個(gè)逗逼,我已經(jīng)多次重寫了自己的web服務(wù),從Rails中的一個(gè)目錄開始,然后遷移到Ruby,接著是Crystal,之后是Go,現(xiàn)在又回到了Ruby。這并不是在浪費(fèi)時(shí)間,這只是為了以防萬一而嘗試新的方法。

最后我又把這些服務(wù)遷移回了Ruby。這段時(shí)間Ruby的表現(xiàn)真是沒得說,它能很輕松的進(jìn)行擴(kuò)展來應(yīng)對(duì)用戶的請(qǐng)求。不過目前這個(gè)應(yīng)用還沒有進(jìn)入beta測(cè)試階段,在你還沒有用戶的時(shí)候,它的確容易擴(kuò)展。實(shí)際上如果在沒有用戶使用的前提下,幾乎任何關(guān)于軟件開發(fā)的一切問題都不算什么,當(dāng)然除了賺錢(當(dāng)然了這也并沒有成為硅谷任何一家公司的障礙)。

好吧我跑題了,我一直都很享受用Shell來測(cè)試這些服務(wù)的過程。

在POSIX shell環(huán)境下測(cè)試, 或者 UBIQUITOUSIX shell 環(huán)境也可以

我已經(jīng)用Shell腳本為這些服務(wù)編寫了測(cè)試,很不錯(cuò)。首先,不需要為基本環(huán)境操心。無論是我的AWS實(shí)例,還是我的持續(xù)集成服務(wù)器,還有我自己的開發(fā)機(jī)上都有Shell環(huán)境。所以不需要安裝任何東西,也不必運(yùn)行什么Docker實(shí)例(實(shí)際上用它肯定也沒什么壞處)。

不過最重要的一點(diǎn)是,我的測(cè)試是獨(dú)立的,獨(dú)立于將來可能會(huì)使用的任何語(yǔ)言。我可以在不同的語(yǔ)言和框架之間進(jìn)行切換,而不需要對(duì)測(cè)試腳本做任何改變。這一點(diǎn)非常重要,因?yàn)槿绻愕膙1版本中有一個(gè)微妙的bug,而測(cè)試卻通過了,當(dāng)你開始重寫v2版本的服務(wù)時(shí),如果在無意中修正了這個(gè)bug,測(cè)試將可能失敗。這意味著你暴露給其它服務(wù)的API不會(huì)因此而意外中斷,你可以使用其它服務(wù)來暫時(shí)頂替,為修復(fù)bug爭(zhēng)取時(shí)間,而不是在部署到生產(chǎn)環(huán)境后大吃一驚。

這些測(cè)試的工具也是相當(dāng)不錯(cuò)的,這些年我一直在用我的好友Blake Mizerany寫的一個(gè)Shell環(huán)境下的小工具roundup。最近我一直在使用Sam Stephenson的 bats,現(xiàn)在它已經(jīng)形成了一個(gè)十分活躍的社區(qū)(哈,誰(shuí)能想到呢,僅僅是一個(gè)shell測(cè)試工具而已)。我的Shell測(cè)試看起來就像這樣,用bats:

@test "Responds with events within the given timespan" {
  url_params="?starts_at=2017-05-01T00:00:00-00:00&ends_at=2017-05-31T00:00:00-00:00"
  run curl "$URL$url_params" --silent -H "Authorization: Bearer:$bearer"

  assert_output --partial "Test Event 0"
  assert_output --partial "Test Event 2"
  refute_output --partial "Test Event 5"
  refute_output --partial "No location data"
  refute_output --partial "Not included in the date span"
}

測(cè)試非常簡(jiǎn)單,也容易理解。基本上就是運(yùn)行curl然后檢查輸出結(jié)果,完成。

整合周圍的一切

最后一點(diǎn),這些微服務(wù)非常之小,我完全可以不用為它們寫任何其它的測(cè)試,只需要寫集成測(cè)試即可。全棧測(cè)試(full-stack)真的非常有趣,但是人們對(duì)此很謹(jǐn)慎,不知道它會(huì)成為下一個(gè)好主意還是成為世界上最差勁的想法。對(duì)于它的價(jià)值,GitHub的主旨是隨時(shí)愉快地運(yùn)行在零單元測(cè)試的生產(chǎn)環(huán)境下??偟膩碚f我正在實(shí)踐這種懸而未決的理論,不過我會(huì)懸崖勒馬。如果你感興趣的話可以閱讀關(guān)于這個(gè)話題更多的文章。

但是我要說的是在這種情況下,哇,一股新鮮空氣襲來。我們的測(cè)試是可移植的,如果我重寫了服務(wù),不必為它們重寫新的測(cè)試。我只需要通過自己的基于 shell 的測(cè)試即可。


本文首發(fā)微信公眾號(hào):jingchengyideng

歡迎掃描二維碼關(guān)注公眾號(hào),每天都給你推送新鮮的前端技術(shù)文章



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

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

相關(guān)文章

  • 【程序人生】做了低薪運(yùn)營(yíng)6年,妹紙靠什么轉(zhuǎn)行拿下 20W 年薪?

    摘要:因當(dāng)時(shí)項(xiàng)目組人手嚴(yán)重不足,故兼做部分功能測(cè)試的工作。年下半年,我的工作職能發(fā)生了調(diào)整,不再跟進(jìn)系統(tǒng)相關(guān),工作職能偏向文職,無法有更大的進(jìn)步空間。后來從網(wǎng)上了解到自動(dòng)化測(cè)試,去年下半年也開始通過視頻學(xué)習(xí)自動(dòng)化測(cè)試相關(guān),決心轉(zhuǎn)行做自動(dòng)化測(cè)試。 本人大學(xué)專業(yè)非計(jì)算機(jī)相關(guān),畢業(yè)六年一直從事運(yùn)營(yíng)相關(guān)工...

    時(shí)飛 評(píng)論0 收藏0
  • Top 10 JavaScript編輯器,你用哪個(gè)?

    摘要:在這個(gè)編輯器中,和是其中排名靠前的兩個(gè)。是一個(gè)免費(fèi)的輕量級(jí)編輯器和,用于和開發(fā)。對(duì)于免費(fèi)的代碼編輯器來說,是一個(gè)很好的選擇。可以安裝兩個(gè)命令行實(shí)用程序,用于從啟動(dòng)編輯器,用于管理的軟件包。 對(duì)于JavaScript程序員來說,目前有很多很棒的工具可供選擇。本文將會(huì)討論10個(gè)優(yōu)秀的支持javascript,HTML5和CSS開發(fā),并且可以使用Markdown進(jìn)行文檔編寫的文本編輯器。為什...

    zombieda 評(píng)論0 收藏0
  • 10大工具匯總,多維度簡(jiǎn)化Kubernetes部署

    摘要:的迭代開發(fā)是谷歌為開發(fā)的工具之一,是一種為應(yīng)用程序執(zhí)行連續(xù)部署的方法。它可以在現(xiàn)有的渠道中使用,并與一些外部構(gòu)建工具集成,主要是谷歌自己的。 Kubernetes已經(jīng)成為大規(guī)模部署經(jīng)過編輯的應(yīng)用程序的標(biāo)準(zhǔn)方法(許多人會(huì)說這是標(biāo)準(zhǔn)方法)。但是,如果Kubernetes可以幫助我們控制無序和復(fù)雜的經(jīng)編輯的部署,那么有什么方法可以幫助我們控制Kubernetes呢?畢竟,它也可能是復(fù)雜、混亂...

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

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

0條評(píng)論

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