Skip to main content

An Object Oriented Testing Framework.

Project description

Build status

An object oriented testing framework.


From pip3:

$ pip3 install --upgrade rstcheck

From source:

$ python3 --quiet install


Install the pitest package first, then:

$ cd unittests
$ python3 -m unittest

Usage Examples

  1. Write a test case:
import pitest

class MyTestCase(pitest.TestCaseBase):
    # By default, test methods are methods whose names start with 'test_'. You
    # can change the matching patterns by defining the 'test_patterns' class
    # variable by uncommenting the following line:
    #       test_patterns = [ 'mytest_*', 'yourtest_*' ]

    # The start * means it matches anything, just like the command line glob.

    # If test methods have inter-dependencies, i.e., certain tests must precede
    # some other tests, you can define the dependencies using the
    # 'internal_deps' class variable. Here is an example:
    #       internal_deps = { 'test_foo1': [ 'test_bar1*', 'test_bar2*' ],
    #                         'test_hel*lo': [ 'test_no', 'test_yes*' ],
    #                       }

    # If this test case depend on other test cases, you can specify their
    # dependencies via the 'deps' class variable. Here is an example:
    #       deps = [ 'MyTestCase1', 'MyTestCaseFoo*', ]

    # When you reference other test cases, you do NOT need to import the files
    # that define the referenced test cases. But if they cannot be found by the
    # end of the day, error will occur.

    def __init__(self[, *args[, **kwargs]]):

    # Run once before running all test methods.
    def setup_instance(self[, *args[, **kwargs]]):

    # Run once after running all test methods.
    def teardown_instance(self[, *args[, **kwargs]]):

    # Run once before running every single test method.
    def setup(self[, *args[, **kwargs]]):

    # Run once after running every single test method.
    def teardown(self[, *args[, **kwargs]]):

    # Actual test methods, names matching 'test_patterns'.
    def test_foo_something(self[, *args[, **kwargs]]):
    def test_foo_something_else(self[, *args[, **kwargs]]):
    def test_bar_something(self[, *args[, **kwargs]]):
    def test_bar_something_else(self[, *args[, **kwargs]]):
  1. Write argument file
import pitest

__pitest_main_default_args_name__ = 'my_args'

my_args = pitest.TestCaseArgs()
        args = ('Anndee', ),
        kwargs = { 'kwarg0': 'KoolArg' })
        args = ('naathing', ),
        kwargs = { 'kwarg1': 'at owl' })

my_args2 = pitest.TestCaseArgs()
        args = ('Bashii', ),
        kwargs = { 'kwarg0': 'KoolArg2' })
        args = ('naathing', ),
        kwargs = { 'kwarg1': 'at owlll' })
  1. Run the test cases

Discover tests:

$ python3 -m pitest discover (case | method | all)

Run tests:

$ python3 -m pitest run (case | method) name

Scan given directory:

$ python3 -m pitest --start-dir some/dir ...

Run tests with dynamic arguments:

$ python3 -m pitest run case MyTestCase --args-file

Use a non-default argument object in the file:

$ python3 -m pitest run case MyTestCase --args-file \
                                        --args-name my_args2

Project details

Release history Release notifications | RSS feed

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 pitest, version 0.1
Filename, size File type Python version Upload date Hashes
Filename, size pitest-0.1.tar.gz (13.7 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page