Python Unittest Runner

+1 and since terminology can be confusing if new to a language (and the usage is even oddly inconsistent): running python -m unittest moduletest.TestClass.testmethod assumes a file moduletest.py (run from current directory; and init.py is not required); and moduletest.py contains class TestClass(unittest.TestCase). Which contains def testmethod(self.) (this also works for me on. Unittest-parallel is a parallel unit test runner for Python with coverage support. To run unittest-parallel, specify the directory containing your unit tests with the '-s' argument and your package's top-level directory using the '-t' argument: By default, unittest-parallel runs unit tests on all CPU cores available. Unittest is one of the Python frameworks for unit testing. It is inspired by the JUnit framework used in the other programming languages. Its features include: 1. Test automation. Ability to share the setup and shutdown code for tests. Aggregation of the tests into collections. The most popular Robot Framework is an open-source Automation Testing framework based. The unittest module can be used from the command line to run single or multiple tests. Python -m unittest test1 python -m unittest testmodule.TestClass python -m unittest testmodule.TestClass.testmethod unittest supports the following command line options. For a list of all the command-line options, use the following command −.

  • UnitTest Framework Tutorial

See Full List On Pypi.org

  • UnitTest Framework Resources
  • Selected Reading

'unittest' supports test automation, sharing of setup and shutdown code for tests, aggregation of tests into collections, and independence of the tests from the reporting framework.

The unittest module provides classes that make it easy to support these qualities for a set of tests.

To achieve this, unittest supports the following important concepts −

  • test fixture − This represents the preparation needed to perform one or more tests, and any associate cleanup actions. This may involve, for example, creating temporary or proxy databases, directories, or starting a server process.

  • test case − This is the smallest unit of testing. This checks for a specific response to a particular set of inputs. unittest provides a base class, TestCase, which may be used to create new test cases.

  • test suite − This is a collection of test cases, test suites, or both. This is used to aggregate tests that should be executed together. Test suites are implemented by the TestSuite class.

  • test runner − This is a component which orchestrates the execution of tests and provides the outcome to the user. The runner may use a graphical interface, a textual interface, or return a special value to indicate the results of executing the tests.

Python

Creating a Unit Test

The following steps are involved in writing a simple unit test −

Step 1 − Import the unittest module in your program.

Step 2 − Define a function to be tested. In the following example, add() function is to be subjected to test.

Step 3 − Create a testcase by subclassing unittest.TestCase.

Step 4 − Define a test as a method inside the class. Name of method must start with 'test'.

Step 5 − Each test calls assert function of TestCase class. There are many types of asserts. Following example calls assertEquals() function.

Step 6 − assertEquals() function compares result of add() function with arg2 argument and throws assertionError if comparison fails.

Python Unittest Run Single Test

Step 7 − Finally, call main() method from the unittest module.

Step 8 − Run the above script from the command line.

Step 9 − The following three could be the possible outcomes of a test −

Sr.NoMessage & Description
1

OK

The test passes. ‘A’ is displayed on console.

2

FAIL

The test does not pass, and raises an AssertionError exception. ‘F’ is displayed on console.

3

ERROR

The test raises an exception other than AssertionError. ‘E’ is displayed on console.

These outcomes are displayed on the console by '.', 'F' and 'E' respectively.

Command Line Interface

The unittest module can be used from the command line to run single or multiple tests.

Line

unittest supports the following command line options. For a list of all the command-line options, use the following command −

Sr.NoOption & Description
1

-h, --help

Show this message

2

v, --verbose

Verbose output

3

-q, --quiet

Minimal output

4

-f, --failfast

Stop on first failure

5

-c, --catch

Catch control-C and display results

6

-b, --buffer

Buffer stdout and stderr during test runs

How To Run Python Test