2013-12-16 9 views
5

का उपयोग करते समय परीक्षण छोड़ें, स्पष्टता के लिए हमारे वेब-ऐप्स में से किसी एक का परीक्षण करते समय मैंने BaseTestClass बनाया है जो unittest.TestCase को प्राप्त करता है। BaseTestClass में मेरे setUp() और tearDown() विधियां शामिल हैं, जिनमें से प्रत्येक मेरे <Page>Test कक्षाएं तब से प्राप्त होती हैं।पाइथन unittest, बेस-टेस्ट-क्लास

कुछ मतभेदों के साथ समान पृष्ठों वाले परीक्षण के तहत विभिन्न उपकरणों के कारण मैं @unittest.skipIf() सजावटी का उपयोग करना चाहता था लेकिन यह साबित करना मुश्किल था। BaseTestClass से सजावटी 'विरासत' के बजाय, यदि मैं उस सजावटी का उपयोग करने का प्रयास करता हूं तो ग्रहण unittest.TestCase को <Page>Test में स्वत: आयात करने का प्रयास करता है, जो मेरे लिए सही नहीं लगता है।

Base का उपयोग करते समय skip सजावट का उपयोग करने का कोई तरीका है?

class BaseTestClass(unittest.TestCase): 

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

    def tearDown(): 
     #clean up 

एक अलग मॉड्यूल में परीक्षण वर्गों में से एक:

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 

उत्तर

2

जाहिर है इस unittest2 की आवश्यकता है (या अजगर 3, मुझे लगता है), लेकिन उसके अलावा, अपने उदाहरण बहुत करीब था। सुनिश्चित करें कि आपके वास्तविक परीक्षण कोड का नाम आपकी इकाई परीक्षण खोज तंत्र (test_*.py नाक के लिए) द्वारा खोजा जाता है।

#base.py 
import sys 
import unittest2 as unittest 

class BaseTestClass(unittest.TestCase): 

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

और वास्तविक कोड में:

# 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 

कौन सा उत्पादन

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

OK (SKIP=1) 
+0

धन्यवाद देता है, मैं जंगली कार्ड आयात का उपयोग करने के बारे में सोचा है कभी नहीं होगा। –

संबंधित मुद्दे