thekompanee / fuubar

The instafailing RSpec progress bar formatter
http://jeffkreeftmeijer.com/2010/fuubar-the-instafailing-rspec-progress-bar-formatter/
MIT License
955 stars 65 forks source link

Allow fuubar to suppress rspec summary, failure dump, pending dump, and messages #107

Closed donquxiote closed 5 years ago

donquxiote commented 5 years ago

Why This Change Is Necessary

I wanted to use fuubar to get a progress bar of my specs, but suppress some of the default rspec sections like the summary, failures dump, and pending examples dump.

How These Changes Address the Issue

I added the fuubar_output_options and set defaults to true, so when no options are passed there is no change to the functionality of the gem. But if you pass all of the new options like so:

config.fuubar_output_summary = false
config.fuubar_output_failure_detail = false
config.fuubar_output_pending_detail = false
config.fuubar_output_messages = false

Then only the progress bar will appear as output from the formatter.

Side Effects Caused By This Change

None

Checklist:

p-mongo commented 5 years ago

Does this turn off all output?

config.fuubar_output_options = {  }

In other words, if I want to hide pending summary only, I have to explicitly specify all of the other output options set to true?

donquxiote commented 5 years ago

In other words, if I want to hide pending summary only, I have to explicitly specify all of the other output options set to true?

After some more testing it would have, which is not what I intended. I changed the settings to be individual booleans, so now you can set none, and it will output all of the output fuubar does now. Or you can pick and choose whichever option you want and set false to disable it.

donquxiote commented 5 years ago

I removed the specific rubocop from the gemfile, its causing building on older versions of ruby to fail and ultimately not the point of the feature.

p-mongo commented 5 years ago

Thank you this should be very helpful for us as some of our configurations have thousands of skipped tests. I'll update here with my testing results once I have them.

jfelchner commented 5 years ago

@donquxiote Fellow Austinite! ;)

So I took a look at the PR. I'm willing to compromise and add options for dumping the pending/skipped examples (because, even though I believe that they're there for a reason and should be cleaned up, I understand that not all teams have that luxury) and possibly the summary, although I don't see much point in suppressing this as it is only a couple lines. But the entire point of fuubar is to see your failures while you're running your tests so I'm not willing to suppress the individual failures. Additionally I'm not sure what the benefit is of suppressing messages.

Feel free to make a case :)

jfelchner commented 5 years ago

I've got a rebased commit ready to go but in order for those changes to go in, we'll need tests.

donquxiote commented 5 years ago

Howdy!

In retrospec, the use case I was building for was pretty specific, and may not be universal enough. We have a few micro services with their own sets of specs. To make running those locally easier for my team I made a tool that runs all of the specs in one task. I used fuubar to show the progress bar while the tests are running, one after another. Then we collate and print the results with the JSON formatter. That's where we get any errors and the final summary of all of the spec results.

In that case, I wanted to suppress all of the dialog because I'm doing the heavy lifting after we've gotten all of the spec results. All I needed was the clean progress bar to display that things are actually running. Basically just using fuubar for the graphical display.

However, based on your comment, it sounds like getting those errors right away is a key part of the design of fuubar. If that's so, then I'd agree that suppressing them is incongruent and .

jfelchner commented 5 years ago

@donquxiote ok, lemme add the "skipped tests" feature and then we can reevaluate the other stuff another time. :)

jfelchner commented 5 years ago

@donquxiote merged in d0ffe005. I made sure to still give you the credit on the commit. Thanks!

github-actions[bot] commented 3 years ago

This issue has been closed automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.