我想以所需的顺序或顺序运行功能文件,例如:
tags:"`@ProtractorScenario` or @CucumberScenario"
但是黄瓜场景首先被执行。有人可以指导我吗?
注意:Cucumber 是根据文件夹中特征文件的字母顺序执行场景
此外,在超过 50 个特征文件的情况下,定义黄瓜特征文件排序的最佳方法是什么?
我想以所需的顺序或顺序运行功能文件,例如:
tags:"`@ProtractorScenario` or @CucumberScenario"
但是黄瓜场景首先被执行。有人可以指导我吗?
注意:Cucumber 是根据文件夹中特征文件的字母顺序执行场景
此外,在超过 50 个特征文件的情况下,定义黄瓜特征文件排序的最佳方法是什么?
为了获得可靠的测试,你的测试应该是独立的,而不是依赖于它们运行的顺序。原因是你的测试不应该依赖于系统处于某种状态,因为这会导致不稳定的测试。您的每个测试都应设置预期状态(和拆卸!),以便它们可以独立运行。
下面是量角器如何执行黄瓜特征文件:
specs
,将文件绝对路径保存到一个数组中,我们称之为feature_list
.Protractor 生成 Cucumber CLI 如下,执行 CLI 交出运行控制 cucumber:
./node_modules/bin/cucumber --require xxx --format xxx feature1,feature2,....featureN
feature1,feature2,....featureN 计算方式为feature_list.join(',')
从上面我们可以了解到,改变订单的唯一机会是给feature_list
protractor一个 order-done specs
。
注意:每个成员都
feature_list
应该是单个功能文件的绝对/相对路径。folder
并且wildcard
不建议出现在路径中。
你可以从我的 github:spec.filter.js得到一个解决方案代码,它实现了:
使用指南spec.filter.js
:
// protractor conf file
const specFilter = require('./spec.filter.js');
var config = {
seleniumAddress: 'xxxxx',
capabilities:'xxxx',
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
ignoreUncaughtExceptions: true,
specs: [
'./aa/**/*.feature',
'./bb/**/*.feature'
],
cucumberOpts: {
require: [
'xxx'
],
priorities: {
// feature has tag @SPGC-21542 or @SPGC-21944 or @SPGC-21946
// will has priority 1
'1': ['@SPGC-21542 or @SPGC-21944', '@SPGC-21946'],
// feature has tag @SPGC-22055 will has priority 2,
// feature has heighest priority will put ahead at
// the `specs` list and get executed firstly.
'2': ['@SPGC-22055']
}
tags: ""
}
....
};
exports.config = specFilter(config);