Cypress系列(96)- exec() 命令詳解


如果想從頭學起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 測試用例集生效了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM