回答
我想,這是不可能的現在:http://bugs.python.org/issue4080。
但你可以做這樣的事情:
import unittest
import time
class SomeTest(unittest.TestCase):
def setUp(self):
self.startTime = time.time()
def tearDown(self):
t = time.time() - self.startTime
print "%s: %.3f" % (self.id(), t)
def testOne(self):
time.sleep(1)
self.assertEquals(int('42'), 42)
def testTwo(self):
time.sleep(2)
self.assertEquals(str(42), '42')
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(SomeTest)
unittest.TextTestRunner(verbosity=0).run(suite)
結果:
__main__.SomeTest.testOne: 1.001
__main__.SomeTest.testTwo: 2.002
----------------------------------------------------------------------
Ran 2 tests in 3.003s
OK
Nose測試與pinnochio extension有stopwatch選項,這將給你這個,如果鼻子是一個選擇。
它還有很多其他有用的功能和插件,使單元測試更好。
這是從horejsek的答案腳本的變化。 它將monkey-patch django TestCase這樣每個TestCase會給它的總運行時間。
你可以把這個sript根包的__init__.py,你的settings.py生活在那裏。 之後,你可以與./mange.py測試運行測試-s
from django import test
import time
@classmethod
def setUpClass(cls):
cls.startTime = time.time()
@classmethod
def tearDownClass(cls):
print "\n%s.%s: %.3f" % (cls.__module__, cls.__name__, time.time() - cls.startTime)
test.TestCase.setUpClass = setUpClass
test.TestCase.tearDownClass = tearDownClass
解僅命令行:
1 /安裝nose
(流行的替代測試澆道)和延伸pinnochio
$ pip install nose pinnochio
2 /隨時間記錄(次保存在文件.nose-stopwatch-times
)
$ nosetests --with-stopwatch
通過減少時間排序
3 /顯示測試名稱:
$ python -c "import pickle,operator,signal; signal.signal(signal.SIGPIPE, signal.SIG_DFL); print '\n'.join(['%.03fs: %s'%(v[1],v[0]) for v in sorted(pickle.load(open('.nose-stopwatch-times','r')).items(), key=operator.itemgetter(1), reverse=True)])" | less
鼻子已經流行了好幾年了。每個人都使用py.test,正確如此。 – 2017-11-07 14:46:46
我認爲當它打印's'時會打印'ms' – 2018-02-20 21:26:52
您可以使用django-slowtests,它提供了這樣的輸出:
$ python manage.py test
Creating test database for alias 'default'...
..........
----------------------------------------------------------------------
Ran 10 tests in 0.413s
OK
Destroying test database for alias 'default'...
Ten slowest tests:
0.3597s test_detail_view_with_a_future_poll (polls.tests.PollIndexDetailTests)
0.0284s test_detail_view_with_a_past_poll (polls.tests.PollIndexDetailTests)
0.0068s test_index_view_with_a_future_poll (polls.tests.PollViewTests)
0.0047s test_index_view_with_a_past_poll (polls.tests.PollViewTests)
0.0045s test_index_view_with_two_past_polls (polls.tests.PollViewTests)
0.0041s test_index_view_with_future_poll_and_past_poll (polls.tests.PollViewTests)
0.0036s test_index_view_with_no_polls (polls.tests.PollViewTests)
0.0003s test_was_published_recently_with_future_poll (polls.tests.PollMethodTests)
0.0002s test_was_published_recently_with_recent_poll (polls.tests.PollMethodTests)
0.0002s test_was_published_recently_with_old_poll (polls.tests.PollMethodTests)
如果你看看django_slowtests/test_runner.py你也可以適應技巧你自己。
- 1. 如何知道每個組件在騾子上所花費的時間?
- 2. 在Makefile的每個目標上花費的時間測量
- 3. 如何減少花費在測試上的時間?
- 4. 如何在UIView花費時間加載時通知用戶?
- 5. 如何測量每個命名空間運行clojure測試所花費的時間?
- 6. 測量使用流時內核花費的總時間
- 7. 如何判斷哪些測試花費最多的時間在茉莉花?
- 8. 測量程序花費的時間
- 9. CakePHP UnitTest花費時間太長〜37分鐘
- 10. 在Android中每個應用上花費的跟蹤時間?
- 11. 記錄花費的時間JUnit測試運行
- 12. 花費file_get_contents的時間
- 13. 花費的實際時間
- 14. 如何爲每個硒測試用例設置超時時間?
- 15. 如何知道Jmeter中每個用戶的每個請求的結束時間
- 16. 如何跟蹤在vs 2010中花費的調試時間?
- 17. 如何調試花費太多時間的「git pull」?
- 18. 我該如何測試(rspec)需要花費太長時間的http請求?
- 19. MagicalRecord節省花費時間
- 20. MDX查詢花費時間
- 21. sqlite3需要花費時間
- 22. WebRequest.GetResponse()花費太多時間
- 23. :app:transformClassesAndResourcesWithProguardForRelease花費太長時間
- 24. Selenium webdriver find_element_by_xpath花費時間
- 25. 在json中花費時間
- 26. ViewResult.ExecuteResult花費太長時間
- 27. GraphAlgoFactory.allSimplePaths花費很多時間
- 28. 查找在每個位置ID花費的時間
- 29. Statement.executeQuery爲每個SQL查詢花費相同的時間量
- 30. 如何減少使用QImage保存png所花費的時間?
我想這將是很好的有一些基類中定義這使人們可以很容易地在。 – 2012-02-29 17:33:32
Definitelly它混合。這只是一種可能性的例子。 – horejsek 2012-02-29 18:08:54
@szeitlin不,它的方法:https://docs.python.org/3/library/unittest.html#unittest.TestCase.id – horejsek 2015-09-28 10:37:36