【发布时间】:2014-01-01 17:29:01
【问题描述】:
首先,下面的代码似乎可以工作。但是,我还没有看到有人这样做,所以我想知道这是否合法以及我是否错过了不可预见的缺点。
上下文是我正在使用 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() 在测试运行之前一个接一个地运行。
【问题讨论】:
标签: javascript angularjs testing jasmine protractor