-1

所以,

我只在 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停止的同一个地方继续,所以我什至不需要这个BeforeEach()方法?

4

2 回答 2

0

不建议测试依赖于其他测试的设置或输出。

有关赛普拉斯团队的详细示例和建议,请参阅赛普拉斯真实世界应用程序这是一个支付应用程序,用于展示赛普拉斯测试方法、模式和工作流程的实际使用情况。

于 2020-10-06T16:32:06.223 回答
0

建议使用describe()and 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..
    })
于 2020-09-30T05:23:22.637 回答