quicklinks

home TOC/contents
install changelog
examples customize
issues[bb] contact

Previous topic

asserting deprecation and other warnings.

Next topic

Running test written for nose

unittest.TestCase supportΒΆ

py.test has limited support for running Python unittest.py style tests. It will automatically collect unittest.TestCase subclasses and their test methods in test files. It will invoke setUp/tearDown methods but also perform py.test’s standard ways of treating tests such as IO capturing:

# content of test_unittest.py

import unittest
class MyTest(unittest.TestCase):
    def setUp(self):
        print ("hello") # output is captured
    def test_method(self):
        x = 1
        self.assertEquals(x, 3)

Running it yields:

$ py.test test_unittest.py
=========================== test session starts ============================
platform linux2 -- Python 2.7.1 -- pytest-2.1.1
collecting ... collected 1 items

test_unittest.py F

================================= FAILURES =================================
____________________________ MyTest.test_method ____________________________

self = <test_unittest.MyTest testMethod=test_method>

    def test_method(self):
        x = 1
>       self.assertEquals(x, 3)
E       AssertionError: 1 != 3

test_unittest.py:8: AssertionError
----------------------------- Captured stdout ------------------------------
hello
========================= 1 failed in 0.02 seconds =========================