我正在使用量角器在我的角度应用程序上运行e2e测试。
我希望能够在describe
或it
块之间同步动作,例如:
describe('My spec', function () {
doMyAction();
describe('My sub spec 1', function () {
...
});
describe('My sub spec 2', function () {
...
});
doAnotherAction();
});
问题是这些操作是按以下顺序执行的:
doMyAction
做另一个动作
describe1
describe2
有没有办法强制在
doAnotherAction
之前执行describe块?我检查了控制流功能:https://code.google.com/p/selenium/wiki/WebDriverJs#Control_Flows
我想知道的是,describe块是否返回可以与之同步的承诺?
最佳答案
一种选择是利用jasmine-beforeAll
插件,该插件提供beforeAll()
和afterAll()
钩子,它们基本上是规范级的设置和拆卸功能:
describe('My spec', function () {
beforeAll(function() { doMyAction(); });
afterAll(function() { doAnotherAction(); });
describe('My sub spec 1', function () {
...
});
describe('My sub spec 2', function () {
...
});
});
在这种情况下,执行顺序为:
doMyAction
describe1
describe2
做另一个动作
仅供参考,
beforeAll()
和afterAll()
当前为a part of jasmine development version,相关功能要求:Support for beforeAll and afterAll
另一个选择是在子规范之前和之后从
doMyAction
块调用doAnotherAction
和it
:describe('My spec', function () {
it('beforeAll', function () {
doMyAction();
});
describe('My sub spec 1', function () {
...
});
describe('My sub spec 2', function () {
...
});
it('afterAll', function () {
doAnotherAction();
});
});