Prueba de unidad de Python, pruebas de omisión cuando se usa una clase de prueba base

Whilst testing one of our web-apps for clarity I have created a BaseTestClass which inherits unittest.TestCase. The BaseTestClass includes my setUp() and tearDown() methods, which each of my Test classes then inherit from.

Due to different devices under test having similar pages with some differences I wanted to use the @unittest.skipIf() decorator but its proving difficult. Instead of 'inheriting' the decorator from BaseTestClass, if I try to use that decorator Eclipse tries to auto-import unittest.TestCase into Test, which doesn't seem right to me.

¿Hay alguna manera de utilizar los decoradores omitir cuando se usa una Base ?

class BaseTestClass(unittest.TestCase):

    def setUp():
        #do setup stuff
        device = "Type that blocks"

    def tearDown():
        #clean up

Una de las clases de prueba en un módulo separado:

class ConfigPageTest(BaseTestClass):

    def test_one(self):
        #do test

    def test_two(self):
        #do test

    @unittest.skipIf(condition, reason) <<
0

1 Respuestas

Obviamente, esto requiere unittest2 (o Python 3, supongo), pero aparte de eso, su ejemplo fue bastante cercano. Asegúrese de que el mecanismo de descubrimiento de prueba de su unidad descubra el nombre de su código de prueba real ( test _ *. Py para nose).

#base.py
import sys
import unittest2 as unittest

class BaseTestClass(unittest.TestCase):

    def setUp(self):
        device = "Type that blocks"
    def tearDown(self):
        pass

Y en el código actual:

# test_configpage.py
from base import *

class ConfigPageTest(BaseTestClass):

    def test_one(self):
        pass

    def test_two(self):
        pass

    @unittest.skipIf(True, 'msg')
    def test_three(self):
        pass

Que da la salida

.S.
----------------------------------------------------------------------
Ran 3 tests in 0.016s

OK (SKIP=1)
0
agregado
Gracias, nunca pensé usar la importación de comodín.
agregado el autor Mark Rowlands, fuente