如何解决赛普拉斯有没有办法让“ it”测试在最后一个“ it”测试结束的地方开始?
所以
我只对1个describe和1个it
进行了一系列测试。像这样:
describe("ProjectManager",function () {
it("Many Tests",function () {
//Test 1
cy.get('blalblabla)'
blablalbalb
blalblabla
//Test 2
cy.get('blalblabla)'
blablalbalb
blalblabla
//Test 3
cy.get('blalblabla)'
blablalbalb
blalblabla
etc..
})
})
但是现在我决定将测试分解为不同的it
块,如下所示:
describe("ProjectManager",function () {
it("Test 1",function () {
cy.get('blalblabla)'
blablalbalb
blalblabla
})
it("Test 2",function () {
cy.get('blalblabla)'
blablalbalb
blalblabla
})
it("Test 3",function () {
cy.get('blalblabla)'
blablalbalb
blalblabla
})
etc..
})
我的问题:我所有的测试都在网站的特定部分进行。要到达那里,我必须先登录,然后单击一堆东西,甚至是写/保存东西,等等。
我的问题:我需要做BeforeEach()
才能在每次it
之后再次做所有事情吗?因为那对我来说不可行,所以太多了。还是有一种方法可以让每个'it'都在最后一个it
停止的同一位置继续,所以我什至不需要BeforeEach()
方法?
解决方法
建议使用describe()
和it()
,因为它为您的测试提供了结构。您可以使用beforeEach()
而不是before()
来执行所有阻塞之前执行一次。在这里您可以编写代码(例如打开网站,登录等),然后可以继续使用it()
describe("ProjectManager",function () {
before(function () {
//Visit website
//login
//click elements
//etc.
})
it("Test 1",function () {
cy.get('blalblabla)'
blablalbalb blalblabla
})
it("Test 2",function () {
cy.get('blalblabla)'
blablalbalb blalblabla
})
it("Test 3",function () {
cy.get('blalblabla)'
blablalbalb blalblabla
})
etc..
})
,
不建议测试依赖于其他测试的设置或输出。
有关赛普拉斯团队的详细示例和建议,请参考Cypress Real World App,a payment application to demonstrate real-world usage of Cypress testing methods,patterns,and workflows。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。