量角器 - 套件中规格之间的动作

时间:2015-08-24 07:55:55

标签: protractor angularjs-e2e test-suite

我在Protractor中创建了一些测试(Specs) - 每个测试在单独运行时都能正常工作。问题是当它们作为一个套件执行时 - 测试会中断。 我想在测试之间添加一些操作 - 例如超时或注销。 有选择吗? 我试过看这里: https://github.com/angular/protractor/blob/master/docs/referenceConf.js

这是我的conf.js文件(规格部分):

suites:{
    sanity: ['*/AccountSettingsTest.js','*/createApptest.js']

},

specs: ['*/AccountSettingsTest.js'],

感谢

2 个答案:

答案 0 :(得分:1)

我相信你可以使用jasmine afterAll功能。它应该在测试中的describe块之后运行。只需将注销/超时函数放入afterAll块内的describe块中,对于该spec文件,它将在describe之后运行。由于您有多个规格,我想您会在每个规范文件中想要它,因为文件运行的顺序可能会有所不同。

来自jasmine docs

describe("A spec using beforeAll and afterAll", function() {
  var foo;

  beforeAll(function() {
      foo = 1;
  });

  afterAll(function() {
      foo = 0;
  });

  it("sets the initial value of foo before specs run", function() {
      expect(foo).toEqual(1);
      foo += 1;
  });

  it("does not reset foo between specs", function() {
      expect(foo).toEqual(2);
  });
});

答案 1 :(得分:0)

您确实可以尝试在 conf.js 文件中添加以下行,以便在测试之间重新启动浏览器 -

restartBrowserBetweenTests: false,

为了保持默认超时,请在 jasmineNodeOpts 对象中添加以下行 -

defaultTimeoutInterval: 30000

详细解释见referenceConf.js file