在特定失败后停止测试
Stop testing after specific failures
我有不可预知的行为页面,它取决于创建开发人员的更改。有时我的测试失败了,因为页面没有加载。我的测试场景结构如下:
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;
};
}
但它不起作用。我使用茉莉花2。
也许有人知道我该如何组织它?
您可以定义一个包装器
var filter = function (fn) {
if (!condition)
throw new Error('skipped');
return fn;
}
并在所有相关的 describe
/it
块上使用它:
describe('...', filter(function () {
...
}));
我有不可预知的行为页面,它取决于创建开发人员的更改。有时我的测试失败了,因为页面没有加载。我的测试场景结构如下:
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;
};
}
但它不起作用。我使用茉莉花2。 也许有人知道我该如何组织它?
您可以定义一个包装器
var filter = function (fn) {
if (!condition)
throw new Error('skipped');
return fn;
}
并在所有相关的 describe
/it
块上使用它:
describe('...', filter(function () {
...
}));