通過之前的一些介紹,已經大概其明白cypress是個啥,但是具體使用的細節點還有很多,需要一步步的去學習,
在安裝好cypress之后,會生成一個默認專案,這個專案結構里的各個檔案夾是干嘛使的呢?

一、fixtures
這個名稱簡直太熟悉了,pytest里我研究最多的就是關于fixtures的用法了,不過在cypress中,倒也沒那么復雜了,主要是用來存放靜態資料用的,這個位置
可以通過配置指定其他的目錄,
比如說測驗的時候需要用到某個依賴介面的回傳值,那么就可以直接copy介面真正的回傳值到后綴是.json的檔案里,配合cy.fixture()就可以使用這個
檔案里的資料了,不需要真正的去請求那個介面,
示例代碼里有個example.json的檔案,里面內容是:
{
"name": "Using fixtures to represent data",
"email": "[email protected]",
"body": "Fixtures are a great way to mock data for responses to routes"
}
在測驗檔案里就可以使用了,當發出一個匹配GET **/comments/*的請求時,Cypress會攔截它并使用example.json中的物件進行回復,

所以,使用fixtures有如下優點:
- 去除對外部功能模塊的依賴,
- 可以在測驗檔案里用上你想要的回傳值,
- 因為沒有真正發送網路請求而是直接從本地檔案里取,所以速度也更快了,
二、integration
這里就是存放測驗檔案的地方了,官方的示例測驗用例檔案有很多,可以閱讀之后再運行一下,

示例代碼里都是.js檔案,不過除了js檔案之外,還有幾種后綴名的檔案,cypress也會把它當成測驗檔案:
- .jsx,是帶有擴展的JavaScript檔案,其中可以包含處理xml的ECMAScript,
- .coffee,是一套JavaScript的轉移語言,相比于JavaScript,語法更嚴格,
- .cjsx,CoffeeScript中的jsx檔案,
這個同樣也可以配置到別的目錄,
三、plugins
用于存放插件,
插件比較特殊,是在專案加載之前、瀏覽器啟動之前和測驗執行期間在Node中執行用的,因為cypress的一個獨有特點就是所有在瀏覽器之內運行,因此
如果需要做一些瀏覽器之外的動作,直接通過cypress就比較困難了,這時候就要通過插件去擴展cypress的內部行為,也可以自定義自己的插件,
這點跟pytest的插件差不多意思,都是用來擴展框架用的,
應用場景舉例:
- 動態修改環境變數,
- 修改特定瀏覽器的啟動引數,
四、support
默認情況下,專案都會包含一個cypress/support/index.js支持檔案,在每個測驗檔案運行之前,cypress都會自動加載這個支持檔案,
比如有些動作是適用于全域的,那么就可以放在這里,比如說,在cypress/support/index.js里增加如下代碼:
beforeEach(() => {
cy.log('在每個測驗執行前都會運行我cypress/support/index.js!!!!!!')
})
運行后,會看到每個測驗用例都會有個log輸出,

以上就是默認結構的介紹,cypress是支持自定義專案結構的,這個到后面繼續了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/283019.html
標籤:其他
上一篇:我是個怎樣的人
