我想以所需的顺序或顺序运行要素文件,例如:
tags:"`@ProtractorScenario` or @CucumberScenario"
但黄瓜方案首先被执行。有人可以指导我吗?
注意:Cucumber正在执行基于文件夹
中特征文件的字母顺序的场景
此外,在超过50个特征文件的情况下,定义黄瓜特征文件排序的最佳方法是什么?
答案 0 :(得分:3)
为了进行可靠的测试,您的测试应该是独立的,而不是依赖于它们运行的顺序。原因是您的测试不应该依赖于系统处于某种状态,因为这将导致片状测试。每个测试都应该设置预期的状态(和拆解!),这样它们就可以独立运行。
答案 1 :(得分:0)
以下是量角器执行黄瓜特征文件的方式:
specs
中指定的所有要素文件,将绝对文件路径保存到数组中,让我们称之为feature_list
。量角器生成如下的Cucumber CLI,并执行CLI以移交正在运行的控制黄瓜:
./node_modules/bin/cucumber --require xxx --format xxx feature1,feature2,....featureN
feature1,feature2,.... featureN由feature_list.join(',')
从上面,我们可以学习改变秩序的唯一机会
向量角器feature_list
发出订单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);