{ "info": { "author": "Erik Rose", "author_email": "erikrose@grinchcentral.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Topic :: Software Development :: Testing" ], "description": "================\nnose-progressive\n================\n\nGive your tests a progress bar and smarter tracebacks in 3 lines::\n\n pip install nose-progressive\n cd your_project\n nosetests --with-progressive\n\n.. image:: https://github.com/erikrose/nose-progressive/raw/master/in_progress.png\n\nnose-progressive is a nose_ plugin which displays progress in a stationary bar,\nfreeing the rest of the screen (as well as the scrollback buffer) for the\ncompact display of test failures, which it formats beautifully and usefully. It\ndisplays failures and errors as soon as they occur and avoids scrolling them\noff the screen in favor of less useful output. It also offers a number of other\nhuman-centric features to speed the debugging process.\n\n.. _nose: http://somethingaboutorange.com/mrl/projects/nose/\n\nThe governing philosophy of nose-progressive is to get useful information onto\nthe screen as soon as possible and keep it there as long as possible while\nstill indicating progress.\n\nFeatures\n========\n\nProgress Bar\n------------\n\nnose-progressive indicates progress in a stationary progress bar at the bottom\nof the screen. It supports a wide variety of terminal types and reacts to\nterminal resizing with all the grace it can muster. And unlike with the\nstandard dot-strewing testrunner, you can always see what test is running.\n\nTracebacks: Prompt, Pretty, and Practical\n-----------------------------------------\n\nnose, like most testrunners, typically waits until the bitter end to show error\nand failure tracebacks, which wastes a lot of time in large tests suites that\ntake many minutes to complete. We show tracebacks as soon as they occur so you\ncan start chasing them immediately, and we format them much better:\n\n* Judicious use of color and other formatting makes the traceback easy to scan.\n It's especially easy to slide down the list of function names to keep your\n place while debugging.\n* Omitting the *Traceback (most recent call last)* line and using relative\n paths (optional), along with many other tweaks, fits much more in limited\n screen space.\n* Identifying failed tests in a format that can be fed back to nose makes it\n easy to re-run them::\n\n FAIL: kitsune.apps.wiki.tests.test_parser:TestWikiVideo.test_video_english\n\n To re-run the above, do this::\n\n nosetests --with-progressive kitsune.apps.wiki.tests.test_parser:TestWikiVideo.test_video_english\n\n* The frame of the test itself always comes first; we skip any setup frames\n from test harnesses and such. This keeps your concentration where it counts.\n Also, like unittest itself, we hide any frames that descend into trivial\n comparison helpers like ``assertEquals()`` or ``assertRaises()``.\n\n (We're actually better at it than unittest. We don't just start hiding\n frames at the first unittest one after the test; we snip off only the last\n contiguous run of unittest frames. This lets you wrap your tests in the\n decorators from the mock library, which masquerades as unittest, and still\n see your tracebacks.)\n* Editor shortcuts (see below) let you jump right to any problem line in your\n editor.\n\nEditor Shortcuts\n----------------\n\nFor each frame of a traceback, nose-progressive provides an editor shortcut.\nThis is a combination of a filesystem path and line number in a format\nunderstood by vi, emacs, the BBEdit command-line tool, and a number of other\neditors::\n\n vi +361 apps/notifications/tests.py # test_notification_completeness\n\nJust triple-click (or what have you) to select the line, and copy and paste it\nonto the command line. You'll land right at the offending line in your editor\nof choice. As a bonus, the editor shortcut is more compact than the stock\ntraceback formatting.\n\nYou can set which editor to use by setting any of these, which nose-progressive\nchecks in order:\n\n* The ``--progressive-editor`` commandline option\n* The ``NOSE_PROGRESSIVE_EDITOR`` environment variable\n* The ``$EDITOR`` environment variable\n\nCustom Error Classes\n--------------------\n\nnose-progressive fully supports custom error classes like Skip and\nDeprecated. We note the tests that raise them in realtime, just like normal\nerrors and failures::\n\n TODO: kitsune.apps.sumo.tests.test_readonly:ReadOnlyModeTest.test_login_error\n\nHowever, when an error class is not considered a failure, we don't show it\nunless the ``--progressive-advisories`` option is used, and, even in that case,\nwe don't show a traceback (since usually the important bit of information is\n*that* the test was skipped, not the line it was skipped on). This stems from\nour philosophy of prioritizing useful information.\n\nCustom error classes are summarized in the counts after the run, along with\nfailures and errors::\n\n 4 tests, 1 failure, 1 error, 1 skip in 0.0s\n ^^^^^^ Bold ^^^^^^\n\nThe non-zero counts of error classes that represent failures are bold to draw\nthe eye and to correspond with the bold details up in the scrollback. Just\nfollow the bold, and you'll find your bugs.\n\nDjango Support\n--------------\n\nnose-progressive can run your Django tests via django-nose_. Just install\ndjango-nose, then run your tests like so::\n\n ./manage.py test --with-progressive --logging-clear-handlers\n\n.. _django-nose: https://github.com/jbalogh/django-nose\n\nInstallation\n============\n\n::\n\n pip install nose-progressive\n\nOr, get the bleeding-edge, unreleased version::\n\n pip install -e git://github.com/erikrose/nose-progressive.git#egg=nose-progressive\n\nUpgrading\n=========\n\nTo upgrade from an older version of nose-progressive, assuming you didn't\ninstall it from git::\n\n pip install --upgrade nose-progressive\n\nUse\n===\n\nThe simple way::\n\n nosetests --with-progressive\n\nMy favorite way, which suppresses any noisy log messages thrown by tests unless\nthey fail::\n\n nosetests --with-progressive --logging-clear-handlers\n\nTo `use nose-progressive by default`_, add ``with-progressive=1`` to\n``.noserc``.\n\n.. _`use nose-progressive by default`: http://readthedocs.org/docs/nose/en/latest/usage.html#basic-usage\n\nOptions\n=======\n\nGeneral Options\n---------------\n\n``--progressive-editor``\n The editor to use for the shortcuts in tracebacks. Defaults to the value of\n ``$EDITOR`` and then \"vi\". Equivalent environment variable:\n ``NOSE_PROGRESSIVE_EDITOR``.\n``--progressive-abs``\n Display paths in traceback as absolute, rather than relative to the current\n working directory. This lets you copy and paste it to a shell in a different\n cwd or to another program entirely. Equivalent environment variable:\n ``NOSE_PROGRESSIVE_ABSOLUTE_PATHS``.\n``--progressive-advisories``\n Show even non-failure custom errors, like Skip and Deprecated, during test\n runs. Equivalent environment variable: ``NOSE_PROGRESSIVE_ADVISORIES``.\n``--progressive-with-styling``\n nose-progressive automatically omits bold and color formatting when its\n output is directed to a non- terminal. Specifying\n ``--progressive-with-styling`` forces such styling to be output regardless.\n Equivalent environment variable: ``NOSE_PROGRESSIVE_WITH_STYLING``.\n``--progressive-with-bar``\n nose-progressive automatically omits the progress bar when its output is\n directed to a non-terminal. Specifying ``--progressive-with-bar`` forces the\n bar to be output regardless. This option implies\n ``--progressive-with-styling``. Equivalent environment variable:\n ``NOSE_PROGRESSIVE_WITH_BAR``.\n\nColor Options\n-------------\n\nEach of these takes an ANSI color expressed as a number from 0 to 15.\n\n``--progressive-function-color=<0..15>``\n Color of function names in tracebacks. Equivalent environment variable:\n ``NOSE_PROGRESSIVE_FUNCTION_COLOR``.\n``--progressive-dim-color=<0..15>``\n Color of de-emphasized text (like editor shortcuts) in tracebacks. Equivalent\n environment variable: ``NOSE_PROGRESSIVE_DIM_COLOR``.\n``--progressive-bar-filled=<0..15>``\n Color of the progress bar's filled portion. Equivalent environment variable:\n ``NOSE_PROGRESSIVE_BAR_FILLED_COLOR``.\n``--progressive-bar-empty=<0..15>``\n Color of the progress bar's empty portion. Equivalent environment variable:\n ``NOSE_PROGRESSIVE_BAR_EMPTY_COLOR``.\n\nAdvanced Formatting\n-------------------\n\nIf you can't get what you want with the above options\u2014for example, if your\neditor needs a different line number syntax\u2014you can replace the entire\ntemplate that controls the editor shortcut lines of the traceback. You can even\n`rig clickable URLs\n`_ `in most terminals\n`_ that take you straight to the right line in\nyour editor, without even the bother of copy and paste.\n\n``--progressive-editor-shortcut-template='