量角器中有 before() 函数吗?

Is there a before() function in Protractor?

我知道我目前正在使用一个 beforeEach() 函数。

但是,我希望能够 运行 我所有父级别 'describes' 的前函数,而不是其中的 'it' 函数。

例如我的测试看起来像这样(每个函数执行前有一个 x):

    beforeEach: login/out stuffs
x   describe: create first case
x       it: make selections
x       it: add details
x       it: change confidentiality settings
x       it: etc
x   describe: create second case
x       it: make selections
x       it: add details
x       it: change confidentiality settings
x       it: etc

下面是我希望我的测试看起来的样子(在我希望 beforeEach 执行的函数前面有一个 x):

beforeEach: login/out stuffs
x   describe: create first case
        it: make selections
        it: add details
        it: change confidentiality settings
        it: etc
x   describe: create second case
        it: make selections
        it: add details
        it: change confidentiality settings
        it: etc

请提出一些解决方案。

据我了解,这是一个有意的设计选择,每个 it 的测试都是 运行 从头开始​​。否则,每个它都可能进行状态更改,导致兄弟失败。

您要查找的函数名称是beforeAll()。您可以在每个描述中添加一个 before all 。确保您使用的是 Jasmine 2。

我对这个问题的解决方案是将两个描述块拆分为 2 个单独的规范文件。无论如何,我认为这更有意义,因为每个测试都有不同的条件需要满足,而且拥有额外的规范文件并没有太大的麻烦。