微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cypress系列72- 详解 Module API

如果想从头学起Cypress,可以看下面的系列文章

https://www.cnblogs.com/poloyy/category/1768839.html

 

前言

  • 前面介绍 Cypress 如何通过命令行运行,就是采用 cypress run 或 cypress open 命令,但这不是 Cypress 唯一的运行方式
  • Cypress 还允许你将它视为一个 Node Module 来运行,然后通过Node.js运行Cypress,这种方式可以更加灵活地定制测试行为
  • 当想在运行后直接访问测试结果时,此功能很有用

 

如何有用

  • 挑选测试用例运行
  • 整合所有测试用例,提供一份完整HTML格式的测试报告
  • 重新运行单个失败的 spec 文件
  • 发送有关测试失败的通知包括附带的屏幕截图
  • 启动其他构建行为或脚本

 

重点

模块 API支持两个命令: cypress.run() 和 cypress.open() 

 

cypress.run() 命令详解

栗子

代码

// 导入 cypress 模块
const cypress = require('cypress')

 执行 run 命令
cypress.run({
    spec: './cypress/integration/00_examples/actions.spec.js'
})
.then((results) => {
     打印结果
    console.log(results)
})
.catch((err) => 抓取错误信息并打印
    console.error(err)
})

 

运行命令

可以在 cmd 窗口或 npm 脚本中运行下列命令

node 1_run.js

 

运行结果

最终运行的是 actions.spec.js 这个测试用例文件

 

参数列表

和 cypress run 命令行运行的参数一样

 

命令返回结果

cypress.run() 返回一个Promise对象,该 Promise 包含测试结果对象(类似 json 格式的数据),典型的运行可能会返回以下内容

{
  startedTestsAt: '2020-10-23T06:22:53.210Z',endedTestsAt: '2020-10-23T06:23:23.342Z'1Failed: 00'cypress/reporters/custom_reporter.js'nulltrue
    }
  ],browserPath: ''browserName: 'electron'browserVersion: '85.0.4183.121'sversion: '10.0.18363'sversion: '5.4.0'fig: {
    defaultCommandTimeout: 10000'bar''test'
    },configFile: 'C:\\Users\\user\\Desktop\\py\\MyCypress\\cypress.json''http://localhost:7077/''dev''MyCypress'false'wj65e'browsers: [ [Object],[Object],[Object] ],animationdistanceThreshold: 5ecurity: 'C:\\Users\\user\\Desktop\\py\\MyCypress\\cypress\\component'rewriting: polyfill: 'C:\\Users\\user\\Desktop\\py\\MyCypress' },fixturesFolder: 'C:\\Users\\user\\Desktop\\py\\MyCypress\\cypress\\fixtures'noreTestFiles: '*.hot-update.js''C:\\Users\\user\\Desktop\\py\\MyCypress\\cypress\\integration''__cypress'0'C:\\Users\\user\\Desktop\\py\\MyCypress\\cypress\\plugins\\index.js''/__cypress/reporter'30000'C:\\Users\\user\\Desktop\\py\\MyCypress\\cypress\\screenshots''__socket.io'sktimeout: 60000'C:\\Users\\user\\Desktop\\py\\MyCypress\\cypress\\videos'660'/xhrs/'distanceThreshold: [Object],baseUrl: [Object],blockHosts: [Object],browsers: [Object],chromeWebSecurity: [Object],componentFolder: [Object],defaultCommandTimeout: [Object],env: [Object],execTimeout: [Object],experimentalSourcerewriting: [Object],experimentalComponentTesting: [Object],experimentalFetchpolyfill: [Object],experimentalNetworkStubbing: [Object],fileServerFolder: [Object],firefoxGcInterval: [Object],fixturesFolder: [Object],hosts: [Object],ignoreTestFiles: [Object],includeShadowDom: [Object],integrationFolder: [Object],modifyObstructiveCode: [Object],nodeVersion: [Object],numTestsKeptInMemory: [Object],pageLoadTimeout: [Object],pluginsFile: [Object],port: [Object],projectId: [Object],reporter: [Object],reporterOptions: [Object],requestTimeout: [Object],responseTimeout: [Object],retries: [Object],screenshotOnRunFailure: [Object],screenshotsFolder: [Object],supportFile: [Object],tasktimeout: [Object],testFiles: [Object],trashAssetsBeforeRuns: [Object],userAgent: [Object],video: [Object],videoCompression: [Object],videosFolder: [Object],videoUploadOnPasses: [Object],viewportHeight: [Object],viewportWidth: [Object],waitForAnimations: [Object],watchForFileChanges: [Object],configFile: [Object],version: [Object]
    },parentTestsFolder: 'C:\\Users\\user\\Desktop\\py\\MyCypress\\cypress'display: 'MyCypress\\cypress''examples'ednodeVersion: '12.16.3'browserUrl: 'http://localhost:59756/__/''__cypress/xhrs/'
  }
}

 

cypress.open() 命令详解

栗子

代码

 执行 open 命令
cypress.open({
     命令参数列表
    config: {
        baseUrl: 'http://localhost:8080''/products'
node 2_open.js

 

运行结果

在 2_open.js 设置的 config 或 env 会当成 CLI 模式下设置的

 

参数列表

和 cypress open 命令行运行的参数一样

 

待更新

完整的 module api 项目

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐