Почему модуль cProfile не работает с unittest?

Я хотел бы использовать модуль cProfile для профилирования моих модульных тестов. Но когда я бегу

python -mcProfile mytest.py 

Я получил «Ran 0 тестов в 0,000s». Вот исходный код mytest.py

 import unittest class TestBasic(unittest.TestCase): def testFoo(self): assert True == True if __name__ == '__main__': unittest.main() 

Я тестировал и другие более сложные unittests. Всегда получал «Ran 0 tests», если я запускаю его с помощью cProfile. Пожалуйста помоги.

UPDATE: моя ОС – MacOS 10.7 со встроенным python 2.7. Тот же код работает правильно на ubuntu.

One Solution collect form web for “Почему модуль cProfile не работает с unittest?”

Вы должны инициализировать cProfiler в конструкторе теста и использовать данные профиля в деструкторе – я использую его следующим образом:

 from pstats import Stats import unittest class TestSplayTree(unittest.TestCase): """a simple test""" def setUp(self): """init each test""" self.testtree = SplayTree (1000000) self.pr = cProfile.Profile() self.pr.enable() print "\n<<<---" def tearDown(self): """finish any test""" p = Stats (self.pr) p.strip_dirs() p.sort_stats ('cumtime') p.print_stats () print "\n--->>>" def xtest1 (self): pass 

В случае, если тест ожидает ввода, нужно вызвать self.pr.disable() перед этим вызовом и снова включить его.

  • Сценарий тестирования модуля возвращает код выхода = 0, даже если тесты не выполняются
  • Как отключить ведение журнала во время выполнения модульных тестов в Python Django?
  • В чем разница между mock.patch.object (... и mock.patch (
  • Групповое тестирование Django с объектами, основанными на дате / времени
  • Как насмехаться с клиентом redis в Python?
  • InvalidBasesError: не удается разрешить базы для
  • Python unittest - словарь со списками
  • Как очистить / недействить кеш NDB в тестах
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.