refinery-platform / refinery-platform

The Refinery Platform is a data management, analysis and visualization system for bioinformatics and computational biology applications. The platforms consists of three major components: a data repository with rich metadata capabilities, a workflow engine based on the popular Galaxy system, and visualization tools to support the exploration and interpretation of results at all stages of the analysis process.
http://www.refinery-platform.org
Other
102 stars 24 forks source link

Reduce the size of test log output #2224

Open hackdna opened 6 years ago

hackdna commented 6 years ago

Close to 10K lines of output: hard to diagnose test failures and approaching the limit of what Travis CI allows.

Solutions:

  1. Eliminate tracebacks (tests should not be crashing)
  2. Reduce output from grunt uglify task and PhantomJS
  3. Mock external dependencies (e.g., if files on disk are not created then no additional log messages are produced)
  4. Remove some of the DEBUG level logging statements

Also: factory_boy and selenium testing are big culprits. Maybe we can set their log_levels to ERROR

scottx611x commented 6 years ago

2238 could help as well

ngehlenborg commented 6 years ago

Goal for 1.6.1 to reduce to 10K lines to avoid truncation in Travis log. For 1.6.2: make it more useful and reduce further.

mccalluc commented 6 years ago

I've started on this here ... just making the big downloads quieter right now. To help find the next culprits:

$ perl -pne 's/^[^A-Za-z]*//; s/ - .*$//' ~/Desktop/travis.txt | sort | uniq -c | sort -nr | head
1876 INFO     data_set_manager.isa_tab_parser:341 _parse_node()
1434 INFO     data_set_manager.isa_tab_parser:339 _parse_node()
 372 INFO     file_store.models:375 set_filetype()
 155 WARNING  data_set_manager.isa_tab_parser:842 _parse_investigation_file_section()
 132 ERROR    data_set_manager.isa_tab_parser:384 _parse_node()
 100 Traceback (most recent call last):
  84 DEBUG    tool_manager.views:101 create()
  72 response = method(request, **kwargs)
  72 response = callback(request, *args, **kwargs)
  72 File "/home/travis/virtualenv/python2.7.13/lib/python2.7/site-packages/tastypie/resources.py", line 465, in dispatch
hackdna commented 6 years ago

Tracebacks are by far the worst offenders not just because they produce a lot of additional lines that are not counted by grep but also because they don't belong in unit test output at all. So, they should be tackled first.

scottx611x commented 6 years ago

@mccalluc Awesome thanks for the help! I've taken care of _parse_node() & set_filetype() occurrences in my branch which has helped a bunch.

@hackdna I've taken care of the tracebacks except the ones coming from selenium tests as I haven't figured that out yet

scottx611x commented 6 years ago

There are still a few tracebacks aside from selenium that yield error: Broken Pipe but this was a known Django bug that has been fixed in Django 1.8 and newer

449

scottx611x commented 6 years ago

2302 & #2303 helped this out a bunch

scottx611x commented 6 years ago

Moving into milestone 1.6.2 now that we've significantly reduced the test log size with #2302, #2303, and #2328

hackdna commented 6 years ago

When errors are ignored in test output it can lead to issues like #2450.