前言
- 在做自动化测试中,跳过执行某些测试用例,或只运行某些指定的测试用例,这种情况是很常见的
- Cypress 中也提供了这种功能
跳过执行测试套件或测试用例
跳过执行测试套件的栗子
知识点
通过 describe.skip() 或者 context.skip() 来跳过不需要执行的测试套件
测试代码
测试结果
可以看到,只有第二个测试套件里面的第一个 it() 执行了,其他两个 it() 均标记为未执行
跳过执行测试用例的栗子
知识点
测试代码
这里我们结合 beforeEach() ,看看对跳过执行的用例会不会也生效
测试结果
指定执行测试套件或测试用例
通过 .ony() 可以完成,简洁明了
重点:当存在 .only() 指定某个测试套件或测试用例时,只有这个测试套件或测试用例会被执行,其他未加 .only() 的测试套件或测试用例都不会执行
指定执行测试套件的栗子
知识点
通过 describe.only() 或者 context.only() 来指定需要执行的测试套件
测试代码
- 结合 it.skip() 测试一下效果
- 然后在第二个 describe (没有添加 .only() )里面的 context 测试套件添加 .only()
测试结果
这里 Cypress 的 Test Runner显示的有点问题,我们来看 headless 模式下的运行情况
- 添加了 .only() 的子套件,即使父套件没有添加,它也会执行
- 添加了 .only() 的套件,该套件下所有测试用例默认都会执行(即使不加 .only() ),除非加了 .skip() ,不过会处于 pending (待定)状态【我也不知道为啥…】
指定执行测试用例的栗子
知识点
测试代码
测试结果
- 如果当前测试套件下有 it.only() ,那么即使存在测试套件添加了 .only() ,该测试套件也不会执行(如上面的:该套件不会运行)
- 同个测试套件系啊有多个 it.only() 时,都会执行(有些地方可能会说只执行最后一个)