微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

赛普拉斯有没有办法让“ it”测试在最后一个“ it”测试结束的地方开始?

如何解决赛普拉斯有没有办法让“ 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 Appa payment application to demonstrate real-world usage of Cypress testing methods,patterns,and workflows

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。