Overview
1. Testing Scaffold (Test fixture)
The work to be done before the test is prepared and the work to be done after the test is completed. Includes setup () and teardown ().
2. Testing cases (test case)
The smallest test unit.
3. Testing Suites (test suite)
A collection of test cases.
4. Test Runner
The component that the test executes.
Command-line interface
You can run test modules, test classes, and test methods using the command line.
Copy Code code as follows:
Python-m unittest Test_module1 Test_module2
Python-m unittest Test_module. TestClass
Python-m unittest Test_module. Testclass.test_method
Can add-V print details
Copy Code code as follows:
Python-m unittest-v Test_module
test Case Auto Search
UnitTest supports a simple test discovery. After the command line is passed in discovery, the framework automatically searches the current directory for the case to test and executes it. The search directory must be a package or module. The basic use is as follows:
Copy Code code as follows:
CD Project_directory
Python-m UnitTest Discover
Sub options are as follows:
-v,–verbose
Detail level of output information
-s,–start-directory Directory
Start the search directory (default is the current directory)
-p,–pattern pattern
Matching file name (default is test*.py)
-t,–top-level-directory Directory
Top-level directory for search (default is start directory)
Creating test Code
1. Mode One
Create subclass Inheritance UnitTest. TestCase, and then rewrite the following methods
Copy Code code as follows:
Class Widgettestcase (UnitTest. TestCase):
def setUp (self):
Pass
def runtest (self):
Pass
def teardown (self):
Pass
Run
2. Mode Two
Write a method that starts with test
Copy Code code as follows:
Class Widgettestcase (UnitTest. TestCase):
def setUp (self):
Pass
def test_xx1 (self)
def test_xx2 (self)
...
def test_xxn (self)
def teardown (self):
Pass
Building test Suites
Way One
Copy Code code as follows:
Widgettestsuite = UnitTest. TestSuite ()
Widgettestsuite.addtest (widgettestcase (' test_default_size '))
Widgettestsuite.addtest (widgettestcase (' test_resize '))
Mode two (recommended)
Copy Code code as follows:
Def Suite ():
Suite = UnitTest. TestSuite ()
Suite.addtest (widgettestcase (' test_default_size '))
Suite.addtest (widgettestcase (' test_resize '))
Return Suite
Mode III (recommended)
Copy Code code as follows:
Def Suite ():
Tests = [' test_default_size ', ' test_resize ']
Return unittest. TestSuite (Map (widgettestcase, tests))
Mode Four
Multiple test suites built into larger test suites
Copy Code code as follows:
Suite1 = Module1. Thetestsuite ()
Suite2 = Module2. Thetestsuite ()
alltests = UnitTest. TestSuite ([Suite1, Suite2])
Mode Five
UnitTest's Testloader provides a default test suite
Copy Code code as follows:
Suite = UnitTest. Testloader (). Loadtestsfromtestcase (Widgettestcase)
Ignore test Cases (Python2.7 support)
Can be divided unconditionally ignore and conditional ignore, through the adorner implementation
Copy Code code as follows:
Class Mytestcase (UnitTest. TestCase):
@unittest. Skip ("Demonstrating skipping")
def test_nothing (self):
Self.fail ("shouldn ' t happen")
@unittest. SkipIf (Mylib.__version__ < (1, 3),
"Not supported in this library version")
def test_format (self):
# Tests that work to only a certain version of the library.
Pass
@unittest. Skipunless (Sys.platform.startswith ("Win"), "requires Windows")
def test_windows_support (self):
# Windows Specific testing code
Pass
The test class can also ignore
Copy Code code as follows:
@unittest. Skip ("Showing class skipping")
Class Myskippedtestcase (UnitTest. TestCase):
def test_not_run (self):
Pass