我正在尝试从使用Jasmine框架(wdio-jasmine-framework
)编写的回归套件中抽出烟雾套件。
是否可以在Jasmine中的特定测试用例上添加标签?
答案 0 :(得分:2)
如果我在茉莉花/摩卡咖啡的日子里没记错的话,有几种方法可以实现。我会详细说明一些,但我敢肯定还会有其他一些。使用最适合您的一种。
1 。在条件运算符表达式 中使用smokeRun
语句定义测试用例的状态(例如:对于{ {1}},请跳过使用(smokeRun ? it.skip : it)('not a smoke test', () => { // > do smth here < });
的无烟测试)。
这是一个扩展的示例:
// Reading the smokeRun state from a system variable:
const smokeRun = (process.env.SMOKE ? true : false);
describe('checkboxes testsuite', function () {
// > this IS a smoke test! < //
it('#smoketest: checkboxes page should open successfully', () => {
CheckboxPage.open();
// I am a mock test...
// I do absolutely nothing!
});
// > this IS NOT a smoke test! < //
(smokeRun ? it.skip : it)('checkbox 2 should be enabled', () => {
CheckboxPage.open();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(false);
expect(CheckboxPage.lastCheckbox.isSelected()).toEqual(true);
});
// > this IS NOT a smoke test! < //
(smokeRun ? it.skip : it)('checkbox 1 should be enabled after clicking on it', () => {
CheckboxPage.open();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(false);
CheckboxPage.firstCheckbox.click();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(true);
});
});
2。。使用it.only()
可以达到主要相同的效果,不同之处在于测试用例重构工作量。我将这些想法总结为:
it.skip()
方法; it.only()
方法; 您可以详细了解pending-tests
here。
3。。将运行时跳过(.skip()
)与一些嵌套的describe
语句一起使用。
它应该看起来像这样:
// Reading the smokeRun state from a system variable:
const smokeRun = (process.env.SMOKE ? true : false);
describe('checkboxes testsuite', function () {
// > this IS a smoke test! < //
it('#smoketest: checkboxes page should open successfully', function () {
CheckboxPage.open();
// I am a mock test...
// I do absolutely nothing!
});
describe('non-smoke tests go here', function () {
before(function() {
if (smokeRun) {
this.skip();
}
});
// > this IS NOT a smoke test! < //
it('checkbox 2 should be enabled', function () {
CheckboxPage.open();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(false);
expect(CheckboxPage.lastCheckbox.isSelected()).toEqual(true);
});
// > this IS NOT a smoke test! < //
it('checkbox 1 should be enabled after clicking on it', function () {
CheckboxPage.open();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(false);
CheckboxPage.firstCheckbox.click();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(true);
});
});
});
!注意: 这些是有效的示例!我使用WebdriverIO推荐的Jasmine Boilerplace项目对它们进行了测试。
!Obs: :有多种方法可以过滤Jasmine测试,但不幸的是,仅在测试文件( testsuite )级别(例如:< em>使用grep
管道语句,或内置的WDIO specs
和exclude
属性)。