2012-02-29 4 views
5

मैं unittest.TestCase उपयोग कर रहा हूँ मेरे Django अनुप्रयोग के लिए परीक्षण मामलों (जो अनिवार्य रूप से है अजगर से एक ही unittest.TestCase) लिखने के लिए। जब भी कोई परीक्षण विधि विफल हो जाती है, तो मुझे नीचे दिए गए प्रारूप में इसका स्पष्टीकरण मिलता है। क्या कोई तरीका है कि मैं विफल परीक्षण विधि के आउटपुट में कस्टम/डीबग संदेश जोड़ सकता हूं?पायथन/django unittest.TestCase की विफल परीक्षण विधि के विवरण के लिए कस्टम/डीबग संदेश जोड़ने के किसी भी तरीके।

====================================================================== 
FAIL: test_bad_votes (polls.tests.views.PollsViewsTestCase) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/home/colinh/Development/tutorials/guide-to-testing-in-django/polls/tests/views.py", line 66, in test_bad_votes 
    self.assertEqual(resp.context['form']['choice'].errors, [u'This field is required.']) 
AssertionError: [] != [u'This field is required.'] 

उत्तर

7

सामान्य तौर पर, आप Django वर्ग testcase unittest का है, जो आप django.test से आयात करके प्राप्त कर सकते हैं से प्राप्त करना चाहते। उस ने कहा, आप जो भी आप मूल्यांकन करने की कोशिश कर रहे हैं, उसमें एक तर्क तर्क पास कर सकते हैं, जिसमें विफलता संदेश शामिल है। , जाहिर है

class HumanizeTests(TestCase): 

    def humanize_tester(self, test_list, result_list, method): 
     # Using max below ensures we go through both lists 
     # However, if the lists are not equal length, this raises an exception 
     for test_content, result in zip(test_list, result_list): 
      t = Template('{%% load humanize %%}{{ test_content|%s }}' % method) 
      rendered = t.render(Context(locals())).strip() 
      self.assertEqual(rendered, escape(result), 
         msg="%s test failed, produced '%s', should've produced '%s'" %  (method, rendered, result)) 

तुम्हारा ऊपर की तरह देखने की जरूरत नहीं है, लेकिन आप कार्रवाई में संदेश तर्क देख सकते हैं:

यहाँ मानवीय से एक उदाहरण है।

+3

यदि आप 'assertEqual' फ़ंक्शन की परिभाषा की जांच करते हैं, तो आप इसे देख सकते हैं कि यह तर्क तर्क स्वीकार करता है' def assertEqual (self, first, second, msg = none): ' –

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