我正在使用量角器在我的角度应用程序上运行e2e测试。
我希望能够在describe
或it
块之间同步操作,例如:
describe('My spec', function () {
doMyAction();
describe('My sub spec 1', function () {
...
});
describe('My sub spec 2', function () {
...
});
doAnotherAction();
});
问题是这些操作按此顺序执行:
有没有办法强制在doAnotherAction
之前执行describe块?
我检查了控制流功能:https://code.google.com/p/selenium/wiki/WebDriverJs#Control_Flows
我想知道的是,describe块是否会返回我可以同步的承诺?
答案 0 :(得分:1)
一种选择是利用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 () {
...
});
});
在这种情况下,执行顺序为:
仅供参考,beforeAll()
和afterAll()
目前为a part of jasmine development version,相关功能要求:
另一种选择是从子规范之前和之后的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();
});
});