【cypress】6. cypress的默認文件結構介紹
- 2021 年 5 月 5 日
- 筆記
- Cypress, 把蘋果咬哭的不規律日常
通過之前的一些介紹,已經大概其明白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是支持自定義項目結構的,這個到後面繼續了。

