Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Utility for testing command line scripts

Project description


Provides class to be instantiated in tests that check that scripts can be run and give correct output. Usually works something like this in a test module:

import mymodule
from scripttester import ScriptTester
runner = ScriptTester(mymodule)

Then, in the tests, something like:

code, stdout, stderr = runner.run_command(['my-script', my_arg])
assert code == 0
assert stdout == b'This script ran OK'

The class aims to find your scripts whether you have installed (with pip install . or pip install -e . or python install), or not. If you have not installed, the scripts will not be on your system PATH, and we have to find them. The heuristic is to look (by default) in the directory containing mymodule; if there is a file there, and a scripts sub-directory, assume that directory contains the scripts.

Note there is no way of using this not-installed mechanism to find entrypoint scripts, that have not been installed. To find these, we would have to run the file.


pip install scripttester



Released under the BSD two-clause license - see the file LICENSE in the source distribution.

travis-ci kindly tests the code automatically under Python versions 2.7, and 3.3 through 3.6.

The latest released version is at


  • Install scripttester

  • Install the pytest testing framework:

    pip install pytest
  • Run the tests with:

    py.test --pyargs scripttester


Please put up issues on the scripttester issue tracker.

Project details

Release history Release notifications

This version


Download files

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

Files for scripttester, version 0.1
Filename, size File type Python version Upload date Hashes
Filename, size scripttester-0.1.tar.gz (24.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page