選擇 JavaScript 測(cè)試框架的標(biāo)準(zhǔn)
在選擇 JavaScript 測(cè)試框架時(shí),將有許多選項(xiàng)和不同的因素需要考慮。以下標(biāo)準(zhǔn)將對(duì)你的決定產(chǎn)生最大影響:
E2E 或 Unit —— 端到端框架專門用于在網(wǎng)站上運(yùn)行整個(gè)人機(jī)交互。單元測(cè)試框架將為你提供不同的功能,因?yàn)樗糜跍y(cè)試單個(gè)功能。
斷言——每個(gè)端到端測(cè)試框架都需要一個(gè)斷言庫。 斷言確保我們的測(cè)試返回預(yù)期的結(jié)果。 在選擇框架時(shí),你還需要有一個(gè)選擇要使用的斷言庫以及為什么要使用它的理由。
BDD/TDD 友好—— 有些框架不像其他框架那樣易于與 BDD Girken 風(fēng)格語言一起使用,如果你的組織遵循某種風(fēng)格,你將希望遠(yuǎn)離這些。選擇 BDD 或 TDD,然后選擇一個(gè)對(duì)你的團(tuán)隊(duì)有意義并適合你的組織流程的框架。
異步測(cè)試——在測(cè)試 JavaScript 時(shí),重要的是要考慮異步測(cè)試和 promise。 一些框架開箱即用比其他框架做得更好,這將需要更長的時(shí)間來獲得承諾。
視覺測(cè)試——有些框架比其他框架更適合視覺測(cè)試和捕獲屏幕截圖,有些框架實(shí)際上是開箱即用的。這將使你能夠查看回歸套件中的視覺差異。
CI 集成 —— 如果你的團(tuán)隊(duì)遵循持續(xù)集成和交付實(shí)踐,那么你可能還需要一個(gè)與 Jenkins、Team City 和 Bamboo 集成的框架也就不足為奇了。 大多數(shù) CI 系統(tǒng)在標(biāo)準(zhǔn)運(yùn)行器上運(yùn)行,因此它們與許多較大的 JavaScript 框架攜手合作,以確保它們盡可能地協(xié)同工作,但你在選擇時(shí)仍然需要仔細(xì)檢查。
應(yīng)用語言——應(yīng)用語言標(biāo)準(zhǔn)最近隨著 JavaScript 的動(dòng)態(tài)特性而上升。 以前,測(cè)試代碼和生產(chǎn)代碼不是同一種語言是可以的。 現(xiàn)在,根據(jù)應(yīng)用程序語言在框架中的發(fā)展方式,我們希望選擇一個(gè)最適合編寫我們的應(yīng)用程序的實(shí)際語言的框架。
專長 —— 你可能正在尋找具有特定專長的框架。是否易于設(shè)置并開箱即用?是否有干凈簡(jiǎn)單的語法?它是否與 Angular 測(cè)試或 Selenium 綁定兼容?它有很好的定制嗎?它是否靈活,是否適合其他斷言庫、代碼覆蓋工具和框架?這些都是你需要與團(tuán)隊(duì)一起評(píng)估的考慮因素。
云支持——注意哪些框架與云提供商合作,因?yàn)椴皇敲總€(gè)框架都開箱即用。在云中運(yùn)行測(cè)試將允許你提高測(cè)試覆蓋率和速度,同時(shí)消除麻煩、成本和維護(hù),因此兼容性應(yīng)該是你考慮的一部分。
社區(qū)的規(guī)模 —— 社區(qū)的規(guī)模很重要,因?yàn)槟憧梢栽谶@里尋找答案、找到教程和文檔,但這也取決于個(gè)人喜好。例如,一個(gè)框架可能很好,因?yàn)樗铝耍杂懈嗳嗽谡務(wù)撍?,但有些人可能更喜歡已經(jīng)擁有良好社區(qū)基礎(chǔ)和文檔的更成熟的框架。