我有一个简单的赛普拉斯测试:
describe('My First Test', () => {
it('Go to login page', () => {
cy.visit('http://localhost:3000')
cy.contains('Log in').click()
})
it('Login with local account', () => {
cy.get('input[type=email]').type('123@123.com')
cy.get('input[type=password]').type('asd123')
cy.contains('Log in').type('{enter}')
})
})
Run Code Online (Sandbox Code Playgroud)
第一个断言检查是否存在带有 text 的元素Log in,然后单击它。第二个断言尝试登录。
我已将按钮中的文本更改Log in为Assertion Failed。所以现在第一个断言失败了,但它仍然运行第二个断言,即使我没有重定向到登录页面。
当断言失败时,有没有办法取消正在运行的规范?
您可以添加afterEach()并编写:
afterEach(function() {
if (this.currentTest.state === 'failed') {
Cypress.runner.stop()
}
});
Run Code Online (Sandbox Code Playgroud)
或者
您可以使用插件cypress-fail-fast并在测试级别配置它:
describe("All tests", {
failFast: {
enabled: false, // Children tests and describes will inherit this configuration
},
}, () => {
it("sanity test", {
failFast: {
enabled: true, // Overwrite configuration defined in parents
},
}, () => {
// Will skip the rest of tests if this one fails
expect(true).to.be.true;
});
it("second test",() => {
// Will continue executing tests if this one fails
expect(true).to.be.true;
});
});
Run Code Online (Sandbox Code Playgroud)
或者,对于所有规格,全局写入cypress.json:
{
"env":
{
"FAIL_FAST_ENABLED": true
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4944 次 |
| 最近记录: |