首先,下面的代码似乎工作。但是,我还没有看到有人这样做,所以我想知道这是否合法,以及我是否错过了不可预见的缺点。
上下文是我正在用 Protractor 编写一个 E2E 测试,它使用 Jasmine 风格的 describe/it 块。我的目标是加载一个页面并运行一堆it
测试块,而无需每次都重新加载该页面(因为它很耗时)。
我的构造是:
describe("Homepage", function () {
beforeEach(function () {
browser.get("/"); //loads the page
});
it('elements', function () {
describe('test group', function () {
it('test 1', function () {
//run stuff 1
});
it('test2', function () {
//run stuff 2
});
})
});
});
我意识到另一种方法就是这样做:
describe("Homepage", function () {
beforeEach(function () {
browser.get("/"); //goes to homepage
});
it('elements', function () {
//run stuff 1
//run stuff 2
});
});
但问题是我无法将测试分开,你最终会遇到一个it
大块。我想以某种方式避免每次运行 beforeEach 的问题,但仍然能够很好地分离设置测试块。
顺便说一句,我也试过这个:
describe("Homepage", function () {
browser.get("/"); //goes to homepage
it('elements', function () {
//run stuff 1
//run stuff 2
});
});
除非当您有多个这样的规格时,这不起作用。browser.get() 在测试运行之前一个接一个地运行。