如果想從頭學起Cypress,可以看下面的系列文章哦
https://www.cnblogs.com/poloyy/category/1768839.html
作用
執行系統命令
語法格式
cy.exec(command)
cy.exec(command, options)
command
從項目根目錄(包含默認 cypress.json 配置文件的目錄)執行的系統命令
options
- log:是否將命令顯示到命令日志中,默認 true
- timeout:命令超時時間
- failOnNonZeroExit:如果命令返回結果的 code 屬性值非 0 則返回失敗
- env:在執行命令之前要設置的環境變量的對象(如: {USERNAME:'yy'} ),將與現有系統環境變量合並
正確用法
cy.exec('npm run build')
命令返回結果
返回一個對象,包含以下屬性
-
code:0 代碼成功,1 是失敗
-
stderr:報錯信息
-
stdout:執行命令的返回結果
簡單的栗子
測試代碼
運行結果
命令返回結果
結合接口響應內容的栗子
測試代碼
運行結果
命令返回結果
該系統命令沒有返回結果所以為空
設置環境變量的栗子
測試代碼
如果是 window,打印環境變量記得是 set 環境變量名
運行結果
命令返回結果
注意事項
第一
不要嘗試從 cy.exec() 啟動網絡服務器
命令必須能退出
- cy.exec() 不支持不退出的命令
- 命令必須在 execTimeout 內退出,否則 Cypress 將殺死該命令的進程並導致當前測試失敗
可以自定義 execTimeout
可以修改 execTimeout 來延長系統命令的執行時間
Cypress.config('execTimeout', 30000) Cypress.config('execTimeout') // => 30000
設置后,剩下的所有測試用例都會生效
在測試用例集配置項中自定義 execTimeout
describe('has data available from database', { execTimeout: 90000 }, () => { before(() => { cy.exec('rake db:seed') }) // tests after(() => { cy.exec('rake db:reset') }) })
這樣就只針對該 describe 測試用例集生效了