我有不可预测的行为页面,这取决于创建开发人员的更改。有时我的测试失败了,因为页面没有加载。我的测试场景结构如下:
describe('0. first actions', function () {
var lib = require("../../common.js");
var config = browser.params;
var url = config.listOfReferencesUrl, toolbar;
load(url, "list-of-references");
beforeAll(function () {
// some actions on the page
});
it('test0', function () {
since('test0 failed').
expect(toolbar.isPresent()).toBe(true);
});
describe('1.actions1', function () {
beforeAll(function () {
// some actions on the page
});
it('test1', function () {
since('test1 failed').
expect(table.getRow(clientNameNum).getRowInput().isEnabled()).toBe(true);
});
// ... another invested describes
});
负载函数是:
global.load = function (url, pageType) {
browser.get(url);
if (pageType == 'list-of-references'){
browser.executeScript("icms.go('WEB_INQ_PROC', 'InquiryList', null, 0)");
}
browser.waitForAngular();
};
我想知道如果页面没有加载,我是否可以创建结构来停止我的测试。但我不想使用'jasmine-bail-fast'
,因为如果页面加载,我想看到另一个失败。
我试着写一些像:
if (this.results_.failedCount > 0) {
// Hack: Quit by filtering upcoming tests
this.env.specFilter = function(spec) {
return false;
};
}
但它不起作用。我用jasmine2。 也许有人知道如何组织它?
答案 0 :(得分:1)
您可以定义包装器
var filter = function (fn) {
if (!condition)
throw new Error('skipped');
return fn;
}
并在所有相关describe
/ it
块上使用它:
describe('...', filter(function () {
...
}));