Skip to main content

System test framework with serial and parallel test case execution.

Project description

buildstatus

Installation

pip install systest

Description

Execute a sequence of test cases in serial and/or parallel.

Test cases in a list are executed in serial and test cases in a tuple are executed in parallel, in separate Python threads.

This framework is created with production test in mind, trying to make it possible to minimize the test execution time by executing tests in parallel. The framework is not indended as a replacement for unittest, but rather to be a complement to it.

Documentation: http://systest.readthedocs.org/en/latest

Example usage

See the test suite: https://github.com/eerimoq/systest/blob/master/tests/test_systest.py

For example, the sequence below starts with test case MyTestCase("1"). When MyTestCase("1") has been executed, MyTestCase("2") and the list of MyTestCase("3") and MyTestCase("4") are executed in parallel. When both MyTestCase("2") and the list of MyTestCase("3") and MyTestCase("4") has been executed, MyTestCase("5") is executed. Then the sequence ends.

import logging
from systest import TestCase, Sequencer, configure_logging

LOGGER = logging.getLogger(__name__)

# Define a testcase.
class MyTestCase(TestCase):

    def __init__(self, name):
        super(MyTestCase, self).__init__()
        self.name = "my_testcase_" + name

    def run(self):
        LOGGER.info("Hello!")

# Configure the logging module.
configure_logging()

sequencer = Sequencer("my_sequence")

# Run the sequence.
sequencer.run([
        MyTestCase("1"),
        (
            MyTestCase("2"),
            [
                MyTestCase("3"),
                MyTestCase("4")
            ]
        ),
        MyTestCase("5")
    ])

# Print the report.
sequencer.report()

The output is:

Name: my_sequence
Date: 2016-02-02 18:42:40.446213
Node: erik-VirtualBox
User: erik
---------------------------------------------------------------
Name: my_testcase_1
Description:
None
Hello!

my_testcase_1: PASSED in 0m 0s
---------------------------------------------------------------
Name: my_testcase_2
Description:
None
Hello!

my_testcase_2: PASSED in 0m 0s
---------------------------------------------------------------
Name: my_testcase_3
Description:
None
Hello!

my_testcase_3: PASSED in 0m 0s
---------------------------------------------------------------
Name: my_testcase_4
Description:
None
Hello!

my_testcase_4: PASSED in 0m 0s
---------------------------------------------------------------
Name: my_testcase_5
Description:
None
Hello!

my_testcase_5: PASSED in 0m 0s

---------------------- Test summary begin ----------------------

[
    [
        my_testcase_1: PASSED,
        (
            my_testcase_2: PASSED,
            [
                my_testcase_3: PASSED,
                my_testcase_4: PASSED
            ]
        ),
        my_testcase_5: PASSED
    ]
]

Execution time: 0m 0s

----------------------- Test summary end -----------------------

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

systest-1.5.0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

systest-1.5.0-py2.py3-none-any.whl (8.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file systest-1.5.0.tar.gz.

File metadata

  • Download URL: systest-1.5.0.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for systest-1.5.0.tar.gz
Algorithm Hash digest
SHA256 6a1e96b8b5f7535483c418481951474dbc19a13b5866e66c33a9787462c191d4
MD5 0dd5b69b7427d808fabce35a2fd412cd
BLAKE2b-256 b19e9d58e09ef46d77d0ee2d0d77b49f07aa050a00d673aac5a5e3b6a5acea1f

See more details on using hashes here.

File details

Details for the file systest-1.5.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for systest-1.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b8b25a918f0ad65c8a743e14698cd2778db15b51a2d71cb503c3f4af17161be4
MD5 7835a6ca9b6001f8c0d855a618dd3560
BLAKE2b-256 7b0abf659f9e2d04b0ca7c90100ab605ee1d3033acebf890f9f87b29445e6ef8

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