Skip to main content

A timer plugin for nosetests

Project description

A timer plugin for nosetests that answers the question: how much time does every test take?

https://travis-ci.org/mahmoudimus/nose-timer.png?branch=master

Install

To install the latest release from PyPI:

pip install nose-timer

Or to install the latest development version from Git:

pip install git+git://github.com/mahmoudimus/nose-timer.git

Or to install the latest from source:

git clone https://github.com/mahmoudimus/nose-timer.git
cd nose-timer
pip install .

You can also make a developer install if you plan on modifying the source frequently:

pip install -e .

Usage

Run nosetests with the --with-timer flag, and you will see a list of the tests and the time spent by each one (in seconds):

myapp.tests.ABigTestCase.test_the_world_is_running: 56.0010s
myapp.tests.ABigTestCase.test_the_rest_of_the_galaxy_is_running: 2356.0010s

How do I show only the n slowest tests?

For example, to show only the 10 slowest tests, run nosetests with the --timer-top-n flag:

nosetests --with-timer --timer-top-n 10

How do I color the output and have pretty colors?

You can highlight slower tests using --timer-ok and --timer-warning flags. Default time unit is the second, but you can specify it explicitly, e.g. 1s, 100ms.

  • Tests which take less time than --timer-ok will be highlighted in green.

  • Tests which take less time than --timer-warning will be highlighted in yellow.

  • All other tests will be highlighted in red.

How do I turn off pretty colors?

In some cases, you may want to disable colors completely. This is done by using the --timer-no-color flag. This is useful when running tests in a headless console.

How do I filter results by colors?

It is possible to filter results by color. To do so, you can use the --timer-filter flag:

nosetests --with-timer --timer-filter ok
nosetests --with-timer --timer-filter warning
nosetests --with-timer --timer-filter error

Or to apply several filters at once:

nosetests --with-timer --timer-filter warning,error

How do I export the results ?

Use the --timer-json-file <myfile.json> flag, it will save the result in the following format:

{
 'tests':
  {
  '<test key 1>':
    {
      'status': 'success'|'error'|'fail,
      'time': <float in s>
    },
  '<test key 2>':
    {
      'status': 'success'|'error'|'fail,
      'time': <float in s>
    },
   ....
 }

License

nose-timer is MIT Licensed library.

Contribute

  • Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.

  • Fork the repository on GitHub to start making your changes to the master branch (or branch off of it).

  • Write a test which shows that the bug was fixed or that the feature works as expected.

  • Send a pull request and bug the maintainer until it gets merged and published.

  • Make sure to add yourself to the author’s file in setup.py and the Contributors section below :)

Contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nose-timer-0.7.0.tar.gz (7.2 kB view details)

Uploaded Source

File details

Details for the file nose-timer-0.7.0.tar.gz.

File metadata

  • Download URL: nose-timer-0.7.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nose-timer-0.7.0.tar.gz
Algorithm Hash digest
SHA256 b76baab514aff39ac567455aaecd63b881127f922e9632b1f814f96575f562e8
MD5 8579c1c1fe3055702a1fc6ae15da1583
BLAKE2b-256 456ba9614f54010eb73c318866f44606de26dde0eb55cbf6fce20cfe89a9ae5a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page