2016-07-19 2 views
0

Я думал, что Django не должен печатать какой-либо результат в тестах .... У меня есть инструкции для печати, которые помогают мне с вводом данных, и я написал для них TestCase s, но когда тесты проходят, они печатают весь вывод к терминалу, который раздражает.Почему Django тестирует выход на печать?

Есть ли способ остановить django от их печати во время тестирования? Почему он этого не делает?

Метод Модель:

def wiktionary_lookup(self, wiktionary_prefix, driver): 

    driver.get("http://%s.wiktionary.org/wiki/%s" % (wiktionary_prefix, self.name)) 
    definitions = driver.find_elements_by_xpath("//h3/following-sibling::ol/li") 

    count = 0 
    defs_list = [] 

    print "\tWIKTIONARY DEFINITIONS:\n" 
    for i in definitions: 
     i = i.text.split('\n') 
     for j in i: 
      #Takes out an annoying "[quotations]" in the end of the string, soemtimes. 
      j = re.sub(u'\u2003\[quotations \u25bc\]', '', j) 
      print "\t%d. %s" % (count, j) 
      defs_list.append(j) 
      count += 1 
    print "\n" 

    return defs_list 

Тест:

def test_wiktionary_lookup(self): 
    language = Language.objects.create(name='eng', full_name='English') 
    word = Word.objects.create(language=language, name='testword') 
    driver = webdriver.Chrome() 
    output = word.wiktionary_lookup('en', driver) 
    self.assertTrue(len(output) == 0) 
    word = Word.objects.create(language=language, name='table') 
    output = word.wiktionary_lookup('en', driver) 
    self.assertTrue(len(output) > 0) 
+0

Пожалуйста, ваш код. –

+4

Это нормально; вы не должны использовать в своем коде выражения 'print'. Вы можете использовать регистратор, если это полезно. –

+0

@ ZachZundel code psoted – deltaskelta

ответ

2

Ваша wiktionary_lookup функция делает печать. Ваши тестовые примеры не изменят функциональность вашего кода wiktionary_lookup - на самом деле, если бы они это сделали, это были бы не очень хорошие тестовые примеры! (Вы будете тестировать свой измененный код, а не реальный материал.) Если вы не хотите, чтобы он печатался, вы можете использовать регистратор или что-то еще, как упоминал Франсуа.

Вот ссылка на документацию Джанго протоколирования: https://docs.djangoproject.com/en/1.9/topics/logging/

Смежные вопросы