@ cypress/ skip - test

根据平台、浏览器或 URL 跳过测试的简单命令
it('skips this test when running on Mac', () => {
cy.log('about to run custom command to skip this test')
.wait(1000)
.skipOn('mac')
})

重要
这是一个简单的工具插件, 直到 Cypress 支持测试过滤。 。 。 .
安装
npm install -D @cypress/skip-test
示例
您可以使用此模块作为自定义 Cypress 命令 cy.skipOn 财务报告和审定财务报表 cy.onlyOn 或通过导入其功能。 使用自定义命令 cy.skipOn,将此模块添加到您的支持文件中 cypress/support/index.js
require('@cypress/skip-test/support')
cy.skipOn
在 Electron 浏览器中运行时跳过此测试
it('only runs on Electron', () => {
cy.skipOn('electron')
// the rest of the test
})
在 Windows 平台运行时跳过此测试
it('runs on Linux and Mac', () => {
cy.skipOn('windows')
// the rest of the test
})
cy.onlyOn
仅在Mac上运行时继续测试, 在其它平台上运行时跳过
it('runs on Mac only', () => {
cy.onlyOn('mac')
// the rest of the test
})
仅在对决时继续此测试 localhost启用 baseUrl 设置url来比较.
it('only tests localhost', () => {
cy.onlyOn('localhost')
// the rest of the test
})
进口
import { onlyOn, skipOn } from '@cypress/skip-test'
it('runs only on Mac', () => {
// using the exported function instead of
// the custom command cy.onlyOn(...)
onlyOn('mac')
})
it('skips on Mac', () => {
skipOn('darwin')
})
带有回调的导入
与其在运行时动态跳过测试,不如使用回调格式来隐藏整个测试块.
import { onlyOn, skipOn } from '@cypress/skip-test'
onlyOn('mac', () => {
// this callback will only evaluate on Mac
// thus the tests will be completely hidden from other platforms
describe('Mac tests', () => {
it('works', () => {})
})
})
skipOn('mac', () => {
// this test will run on every platform but Mac
it('hides this test on Mac', () => {})
})
提示 : 可以嵌入回调 结合条件
// run these group of tests only on Mac and only on Chrome
onlyOn('mac', () => {
onlyOn('chrome', () => {
it('works', () => {})
})
})
当跳过一组测试或使用浏览器名的单一测试时,它会插入一个假人空测试,让您知道发生了什么
skipOn('firefox', () => {
it('works', () => {...})
it('works too', () => {...})
})
// output in the console
// Skipping test(s) on firefox
布尔旗
如果您想要计算何时进行测试, 您可以向每个函数或命令传递布尔 .
// run this test if S is "foo"
cy.onlyOn(S === 'foo')
您可以使用旗下回调格式
onlyOn(S === 'foo', () => {
describe('foo', () => {
it('works', () => {...})
})
})
您甚至可以在决定跳过或继续前运行其他 Cypress 命令
it('runs if task returns production', () => {
cy.task('getDbName').then((name) => cy.onlyOn(name === 'production'))
// equivalent
cy.task('getDbName').then((name) => onlyOn(name === 'production'))
// equivalent
cy.task('getDbName')
.then((name) => name === 'production')
.then(onlyOn)
})
isOn
您可以对照浏览器名称或环境来检查条件 .
import { isOn } from '@cypress/skip-test'
it('loads users', () => {
// when running on Windows locally, the backend is not running
// thus we need to stub XHR requests
if (isOn('windows') && isOn('localhost')) {
cy.server()
cy.route('/users', 'fixture:users')
}
cy.visit('/')
cy.get('.user').should('have.length', 10)
})
标题
您可以在标题/ 无头环境中跳过或运行测试
import { skipOn, onlyOn } from '@cypress/skip-test'
skipOn('headed', () => {
it('skips the current test in headed mode', () => {
cy.wrap(true).should('equal', true)
})
})
onlyOn('headless', () => {
it('runs only in headless mode', () => { ... })
})
说明: 在此情况下跳过测试时, 它会插入一个空占位符测试, 以提供测试为何跳过的信息 .
- Skipping test(s), not on headed
ENVIRONMENT
此模块还读取特殊环境变量 ENVIRONMENT 在它的检查。 例如,只有树枝网络呼叫 staging 环境,执行这样的测试 :
CYPRESS_ENVIRONMENT=staging npx cypress run
您可以在 Spec 文件内写入
import {onlyOn, skipOn} from '@cypress/skip-test'
const stubServer = () => {
cy.server()
cy.route('/api/me', 'fx:me.json')
cy.route('/api/permissions', 'fx:permissions.json')
// Lots of fixtures ...
}
it('works', () => {
onlyOn('staging', stubServer)
...
})
skipOn('staging', () => {
it('works on non-staging', () => {...})
})
测试 works 运行时会调用分站网络 staging但是会跳过呼叫 stubServer 其他环境。 测试 works on non-staging 当环境出现时会跳过 staging。 。 。 .
页:1
你可以把条件连在一起
it('combination of skip and only', () => {
cy.skipOn('firefox')
cy.onlyOn('electron').onlyOn('mac')
cy.log('running test')
})
如果测试运行, 它将打印命令日志中的条件

智能
要获得打字,请参考此模块,例如使用 reference 注释
/// <reference types="@cypress/skip-test" />

将更多细节改为 Cypress 智能完成指南
3⁄4 ̄ ̧漯B
运行时跳过 Mocha 测试 afterEach 钩子. 在这个例子中, afterEach 将被跳过 after 钩会跑.
it('example', () => {
cy.skipOn('mac')
})
afterEach(() => {
// this will be skipped when a test is skipped
})
after(() => {
// this will run even after skipping test
})
作者数
- 老凯文
- 格列布·巴赫穆托夫