2016-06-01 14 views
7

मेरे पैरामीटर मेरे पैरामीटरयुक्त पायटेस्ट का नाम निर्धारित करते हैं। मैं इन परीक्षणों के लिए कुछ यादृच्छिक पैराम का उपयोग करूँगा। जूनिट में मेरे रिपोर्टिंग नामों को गड़बड़ न करने के लिए, मैं प्रत्येक पैरामीटर परीक्षण के लिए एक स्थिर नाम बनाना चाहता हूं।एक pytest पैरामीटरयुक्त कार्यों का नाम ओवरराइड करें

क्या यह संभव है? Changing names of parameterized tests

class TestMe: 
    @pytest.mark.parametrize(
     ("testname", "op", "value"), 
     [ 
      ("testA", "plus", "3"), 
      ("testB", "minus", "1"), 
     ] 
    ) 
    def test_ops(self, testname, op, value): 

मैं request.node.name अधिलेखन की कोशिश की लेकिन मैं केवल परीक्षण निष्पादन के दौरान यह नाम बदल सकते हैं:

JUnit एक पैरामीटर है लगता है।

मैं लगभग सकारात्मक हूं मुझे या तो प्लगइन या एक स्थिरता लिखने की आवश्यकता है। इस बारे में जाने का सबसे अच्छा तरीका आपको क्या लगता है?

उत्तर

8

आप pytest.mark.parametrize की ids तर्क के लिए देख रहे:

स्ट्रिंग आईडी की

सूची, या एक प्रतिदेय। यदि तार, प्रत्येक तर्क के लिए संबंधित है ताकि वे परीक्षण आईडी का हिस्सा हों। यदि कॉल करने योग्य है, तो को एक तर्क (एक एकल तर्क) लेना चाहिए और एक स्ट्रिंग या वापसी कोई भी नहीं लेना चाहिए।

आपका कोड

@pytest.mark.parametrize(
    ("testname", "op", "value"), 
    [ 
     ("testA", "plus", "3"), 
     ("testB", "minus", "1"), 
    ], 
    ids=['testA id', 'testB id'] 
) 
def test_industry(self, testname, op, value): 
कैसा लगेगा
संबंधित मुद्दे