我想在不运行测试的情况下计算一个目录中有多少测试。
我尝试了与Demo中类似的操作,但无法打印0
以外的任何内容。
这是我尝试过的(有和没有注释掉的配置内容):
task 'count_specs' do
RSpec.configure do |config|
config.pattern = 'features/**/*_spec.rb'
# config.inclusion_filter.rules
# config.filter_run focus: true
# config.run_all_when_everything_filtered = true
# config.inclusion_filter.rules
config.requires = ['spec_helper']
config.load_spec_files
puts 'count of examples'
puts config.files_to_run
puts RSpec.world.example_count
end
puts 'count of examples'
puts RSpec.world.example_count
end
我如何创建一个任务,该任务计算与特定模式匹配的示例数量?
我想对两个目录运行它并比较结果。
答案 0 :(得分:1)
在RSpec 3中,有一个--dry-run
选项可以打印套件的格式化程序输出,而无需运行任何示例或挂钩。
rspec --dry-run
如果您需要在ruby脚本中包含大量示例:
output = `bundle exec rspec --dry-run | grep 'examples, 0 failures'`
example_count = output.split(' ').first.to_i
答案 1 :(得分:0)
也许为此有一些特定的RSpec方法,但我建议使用此脚本:
CustomChartShape.prototype.renderElementRectangle = BaseRectangle.prototype.renderElement;
CustomChartShape.prototype.renderElementDiamond = BaseDiamond.prototype.renderElement;
CustomChartShape.prototype.renderElement = function(oRm, oElement) {
// There is possibilities that x is invalid number.
// for instance wrong timestamp binded to time property
if (this.bHasInvalidPropValue) { return; }
var Node = this.getBindingInfo('endTime').binding.getContext().getProperty();
if (Node.type == "milestone") {
this.renderElementDiamond(oRm, oElement);
} else {
this.renderElementRectangle(oRm, oElement);
}
}
这很幼稚但可靠。
此变体搜索Dir["**/*_spec.rb"].map { |path| File.read(path) }.join.scan(/( it)|( scenario)/).count
和" it"
,但您可以根据需要更改模式。
此变体仅适用于没有类似块的测试
" scenario"
答案 2 :(得分:0)
if(isset($_SESSION['user']) && isset($_SESSION['store'])){
未记录,因此将来的发行版中可能会破坏它。 请注意,这是已运行的测试的累积数量,因此直到每次运行完测试之后,该数字才准确。