2013-12-16 10 views
5

Beim Testen einer unserer Web-Apps zur besseren Übersicht habe ich eine BaseTestClass erstellt, die unittest.TestCase erbt. Die BaseTestClass enthält meine setUp() und tearDown() Methoden, die jede meiner <Page>Test Klassen dann erben.Python Unittest, Überspringtests bei Verwendung einer Base-Test-Klasse

Aufgrund verschiedener Geräte im Test mit ähnlichen Seiten mit einigen Unterschieden wollte ich den @unittest.skipIf() Dekorateur verwenden, aber es erwies sich als schwierig. Anstatt den Dekorator von BaseTestClass zu "erben", wenn ich versuche, diesen Dekorator zu verwenden, versucht Eclipse, unittest.TestCase in <Page>Test automatisch zu importieren, was mir nicht richtig erscheint.

Gibt es eine Möglichkeit, die skip Dekoratoren zu verwenden, wenn ein Base verwendet wird?

class BaseTestClass(unittest.TestCase): 

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

    def tearDown(): 
     #clean up 

Einer der Testklassen in einem separaten Modul:

class ConfigPageTest(BaseTestClass): 

    def test_one(self): 
     #do test 

    def test_two(self): 
     #do test 

    @unittest.skipIf(condition, reason) <<<What I want to include 
    def test_three(self): 
     #do test IF not of the device type that blocks 

Antwort

2

Offensichtlich erfordert unittest2 (oder Python 3, nehme ich an), aber anders als das, Ihr Beispiel war ziemlich nah dran. Stellen Sie sicher, dass der Name Ihres echten Testcodes von Ihrem Einheitentest-Erkennungsmechanismus (test_*.py für Nase) erkannt wird.

#base.py 
import sys 
import unittest2 as unittest 

class BaseTestClass(unittest.TestCase): 

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

Und in dem eigentlichen Code:

# 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 

, die dem Ausgang

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

OK (SKIP=1) 
+0

Dank gibt, würde ich nie den Wild-Card-Import zu verwenden, gedacht. –

Verwandte Themen