2014-09-11 2 views
3

Я использую команду:Печать другое длинное описание в тестах нос вместе с тестовым именем питона

nosetests test.py 

Когда запускается только первая строка из описания печатается. Я хочу полное описание вместе с именем теста. Как мне это сделать?

test.py файл

import unittests 

class TestClass(unittest.TestCase): 

    def test_1(self): 
     """this is a long description // 
       continues on second line which does not get printed """ 
     some code; 
     self.assertTrue(True) 

    def test_2(self): 
     """this is another or different long description // 
       continues on second line which does not get printed """ 
     some code; 
     self.assertTrue(True) 


if __name__ == '__main__': 
    unittest.main() 

ответ

2

UnitTest является documented as only showing the first line из строки документации метод испытания, в. Но вы можете переопределить реализацию по умолчанию shortDescription метода для настройки такого поведения:

import unittest 

class TestClass(unittest.TestCase): 

    def shortDescription(self): 
     return self._testMethodDoc 

    def test_1(self): 
     """this is a long description // 
       continues on second line """ 
     self.assertTrue(True) 

    def test_2(self): 
     """this is another or different long description // 
       continues on second line which also gets printed :) """ 
     self.assertTrue(True) 

if __name__ == '__main__': 
    unittest.main(verbosity=2) 

Демо:

$ nosetests -v example.py 
this is a long description // 
       continues on second line ... ok 
this is another or different long description // 
       continues on second line which also gets printed :) ... ok 

---------------------------------------------------------------------- 
Ran 2 tests in 0.000s 

OK 

Кто-то написал нос плагин, чтобы исправить это точно досаду, может быть, вам будет интересно использовать что. Вот он: https://bitbucket.org/natw/nose-description-fixer-plugin/

+0

Я думаю, что видел хак раньше где-то на SO, но +1 в любом случае. – alecxe