dvdotsenko / nose_gevent_multiprocess

Gevent-supporting multiprocess plugin for Nose testing framework
GNU Lesser General Public License v2.1
13 stars 8 forks source link

Improved handling of error conditions, logging, test ordering #6

Closed jikamens closed 6 years ago

jikamens commented 9 years ago

This PR contains a number of changes and enhancements, some minor and some significant. See the individual commit messages for details. Summary:

  1. --gevented-processes=1 should disable the plugin.
  2. Make the amount of time the plugin waits for results configurable.
  3. When tests take too long, give the user more information about what happened.
  4. Add support for timing tests and running them from slowest to fastest to increase parallelization and decrease total test run time.
  5. Logger name should be in the nose.plugins namespace for compatibility with nose's logging infrastructure.
dvdotsenko commented 9 years ago

oh.. sorry. missed this PR in the noise of other work-related github notifications. I need to fix the event processing anyway, so will gladly look at merging thing.

dvdotsenko commented 6 years ago

@richafrank @jikamens Added you to this repo as maintainers. I definitely play with this Python still, but not enough with this particular module to be a good single guardian of it.

Please, ping me if I need to do anything special to do a release.

Thx Guys

richafrank commented 6 years ago

Thanks @dvdotsenko .

If you want to push a release to pypi that includes these changes, that'd be great - I think only you would have access to do that currently. (setup.py will also need updating for a version bump.)

dvdotsenko commented 6 years ago

@richafrank What do I add to release notes? What's done / fixed in this merge? (Major vs Minor version release?)

richafrank commented 6 years ago

Hey @dvdotsenko , took a while to get back to this.

Enhancements:

  1. --gevented-processes=1 disables the plugin.
  2. The amount of time the plugin waits for results is configurable.
  3. Added support for timing tests and running them from slowest to fastest to increase parallelization and decrease total test run time.
  4. Logger name moved to the nose.plugins namespace for compatibility with nose's logging infrastructure.
  5. Compatibility with gevent 1.1.

Fixes:

  1. Installing the plugin will ensure nose is installed.
  2. When tests take too long, report it to the user (via nose) and kill the worker subprocesses, instead of hanging until they exit themselves.

Regarding release number, how have you been versioning this so far? This diff cleans up lots of sharp edges and adds some small features, so I'd probably make it a minor release. Thankfully this project has nicely well-constrained scope, so I don't expect we'd see major changes often.