Pythonのテスト


テスト関数の機能:
def average(values):
    """Computes.
        >>> print(average([1,3,5,7,9]))
        5.0
        """
    return sum(values)/len(values)
 
 
 
import doctest
doctest.testmod()

結果;
TestResults(failed=0, attempted=1)
 
ユニットテストdemo:
import unittest
def average(values):
    """Computes.
        >>> print(average([1,3,5,7,9]))
        5.0
        """
    return sum(values)/len(values)
class TestStatisticalFunctions(unittest.TestCase):

    def test_average(self):
        self.assertEqual(average([20, 30, 70]), 40.0)
        self.assertEqual(round(average([1, 5, 7]), 1), 4.3)
        self.assertRaises(ZeroDivisionError, average, [])
        self.assertRaises(TypeError, average, 20, 30, 70)

unittest.main() # Calling from the command line invokes all tests

 
実行結果は以下の通りです.
Ran 1 test in 0.022s OK Traceback (most recent call last):   File "C:/Python31/unitTestDemo", line 16, in     unittest.main() # Calling from the command line invokes all tests   File "C:\Python31\lib\unittest.py", line 1566, in __init__     self.runTests()   File "C:\Python31\lib\unittest.py", line 1613, in runTests     sys.exit(not self.result.wasSuccessful()) SystemExit: False