按rspec中的种子确定的顺序列出所有规格

Use*_*ser 6 rspec ruby-on-rails

我注意到有几个规格间歇性地失败,具体取决于它们的运行顺序.

为了隔离它们,我正在寻找一个命令,我可以在其中输入种子编号,并查看按种子编号确定的顺序列出的所有规格.这可能吗?使用--format = documentation没有提供所需的信息.

从那里我将注意到每次发生间歇性故障之前运行的测试列表,并最终缩小到我的罪魁祸首.

inf*_*sed 10

RSpec的JSON格式化程序按照它们运行的​​顺序输出文件名和行号:

rspec --seed 1 -f json > out.json
Run Code Online (Sandbox Code Playgroud)

要从结果out.json文件中获取包含行号的文件名列表:

require 'json'
data = JSON.parse(File.read('out.json'))
examples = data['examples'].map do |example| 
  "#{example['file_path']}:#{example['line_number']}"
end
Run Code Online (Sandbox Code Playgroud)

现在examples将包含一组文件路径,如:

["./spec/models/user_spec.rb:19", "spec/models/user_spec.rb:29"]
Run Code Online (Sandbox Code Playgroud)

  • 您也可以在rspec命令中添加--dry-run来获取此报告,而无需实际运行规范。 (2认同)