|
165 | 165 | expect_resultset_1_and_2_merged(result_hash)
|
166 | 166 | end
|
167 | 167 | end
|
| 168 | + |
| 169 | + describe "method coverage" do |
| 170 | + before do |
| 171 | + SimpleCov.enable_coverage :method |
| 172 | + store_result(result3, path: resultset3_path) |
| 173 | + end |
| 174 | + |
| 175 | + after do |
| 176 | + SimpleCov.clear_coverage_criteria |
| 177 | + end |
| 178 | + |
| 179 | + let(:resultset1) do |
| 180 | + { |
| 181 | + source_fixture("methods.rb") => { |
| 182 | + methods: { |
| 183 | + ["A", :method1, 2, 2, 5, 5] => 1, |
| 184 | + ["A", :method2, 9, 2, 11, 5] => 0, |
| 185 | + ["A", :method3, 13, 2, 15, 5] => 0 |
| 186 | + } |
| 187 | + } |
| 188 | + } |
| 189 | + end |
| 190 | + |
| 191 | + let(:resultset2) do |
| 192 | + { |
| 193 | + source_fixture("methods.rb") => { |
| 194 | + methods: { |
| 195 | + ["A", :method1, 2, 2, 5, 5] => 0, |
| 196 | + ["A", :method2, 9, 2, 11, 5] => 1, |
| 197 | + ["A", :method3, 13, 2, 15, 5] => 0 |
| 198 | + } |
| 199 | + } |
| 200 | + } |
| 201 | + end |
| 202 | + |
| 203 | + let(:resultset3) do |
| 204 | + { |
| 205 | + source_fixture("methods.rb") => { |
| 206 | + methods: { |
| 207 | + ["B", :method1, 2, 2, 5, 5] => 1, |
| 208 | + ["B", :method2, 9, 2, 11, 5] => 0, |
| 209 | + ["B", :method3, 13, 2, 15, 5] => 0 |
| 210 | + } |
| 211 | + } |
| 212 | + } |
| 213 | + end |
| 214 | + |
| 215 | + let(:result3) { SimpleCov::Result.new(resultset3, command_name: "result3") } |
| 216 | + let(:resultset3_path) { "#{resultset_prefix}3.json" } |
| 217 | + |
| 218 | + it "correctly merges the 3 results" do |
| 219 | + result = SimpleCov::ResultMerger.merge_and_store( |
| 220 | + resultset1_path, resultset2_path, resultset3_path |
| 221 | + ) |
| 222 | + |
| 223 | + merged_coverage = result.original_result.fetch(source_fixture("methods.rb")) |
| 224 | + |
| 225 | + expect(merged_coverage.fetch(:methods)).to eq( |
| 226 | + ["A", :method1, 2, 2, 5, 5] => 1, |
| 227 | + ["A", :method2, 9, 2, 11, 5] => 1, |
| 228 | + ["A", :method3, 13, 2, 15, 5] => 0, |
| 229 | + ["B", :method1, 2, 2, 5, 5] => 1, |
| 230 | + ["B", :method2, 9, 2, 11, 5] => 0, |
| 231 | + ["B", :method3, 13, 2, 15, 5] => 0 |
| 232 | + ) |
| 233 | + end |
| 234 | + end |
168 | 235 | end
|
169 | 236 |
|
170 | 237 | context "pre 0.18 result format" do
|
|
0 commit comments