我只想切换运行一个测试,所以不必等待其他测试来查看一个测试的结果。
目前,我注释掉了其他测试,但这确实很烦人。
有没有一种方法可以切换仅运行一个测试Cypress
?
Answers:
cypress run --spec path/to/file.spec.js
或使用全局模式:
cypress run --spec 'path/to/files/*.spec.js'
注意:您需要将glob模式用单引号引起来,以避免shell扩展!
您可以按照赛普拉斯文档中的.only
描述使用
it.only('only run this one', () => {
// similarly use it.skip(...) to skip a test
})
it('not this one', () => {
})
另外,您可以对describe
和context
块进行相同的操作
还有一个不错的VSCode
扩展,可以.only
使用键盘快捷键使添加/删除操作更加轻松。它称为Test Utils(可与js,coffee和typescript配合使用):
有多种方法可以实现这一目标。
.only
到it
或describe
看到@bkucera答案npx cypress run --record --spec "cypress/integration/my-spec.js" npm run cypress -- --record --spec "cypress/integration/my-spec.js"
我发现有一种方法可以跳过不需要运行的测试(在当前测试中),那就是使用: this.skip();
it('test page', function () {
// skip this test for now
this.skip();
cy.visit('http://example.com/')
cy.contains('test page').click()
cy.url()
.should('include', '/test-page/')
})
1.使用正则函数作为它的第二个参数很重要,这在箭头函数中将不可用
。2.无论我们在哪里编写this.skip(),都将跳过整个测试
您可以通过在前面加上静音不需要测试套件和特殊情况下x
,以TestRunner的方法调用(describe
,it
,等)
因此,它看起来像:
// this whole testsuite will be muted
xdescribe('Visit google', () => {
it('should visit google', () => { cy.visit('https://google.com/'); });
});
// this testsuite will run
describe('Visit youtube', () => {
it('should visit youtube', () => { cy.visit('https://youtube.com/'); });
// this testcase will be muted
xit('is not necessary', () => { ... });
});