我在Protractor中创建了一些测试(Specs) - 每个测试在单独运行时都能正常工作。问题是当它们作为一个套件执行时 - 测试会中断。 我想在测试之间添加一些操作 - 例如超时或注销。 有选择吗? 我试过看这里: https://github.com/angular/protractor/blob/master/docs/referenceConf.js
这是我的conf.js文件(规格部分):
suites:{
sanity: ['*/AccountSettingsTest.js','*/createApptest.js']
},
specs: ['*/AccountSettingsTest.js'],
感谢
答案 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