2013-04-23 80 views
2

我正在Python中的TDD項目工作,我正在尋找一種快速的方法來運行我的t /目錄中的所有單元測試。在Perl中,這很容易:Python相當於Perl的證明

$ prove -lvr t/ 

我正在尋找python等價物。它似乎並沒有鼻子有這個功能。我滾了一個命令行語句做這樣的事情:

for x in `find t/ | grep py`; do echo $x && python $x ; done 

但這種缺乏像-l標誌(包括本地的lib目錄)和-v(詳細)。這是或不是在python中存在?我想要這樣一個班輪:

$ pyprove -lvr t/ 
+0

請問http://testoob.sourceforge.net/是否符合您的需求? – msw 2013-04-23 18:12:59

+0

會看看 – 2013-04-23 19:21:22

+0

@DavidWilliams,'see -lvr .'在看完帖子後確實幫了我很大忙。這篇文章值得更多的關注,這是一個很好的問題。 – Gang 2016-01-16 04:16:51

回答

1

嘗試nose。詳細地添加-v-w指定搜索目錄(參考:usage)。

nosetests -v -w t/ 
+0

'$ nosetests -v -w test/ -------------------------------------- -------------------------------- 冉0測試在0.001s 好' 但是我有測試在那裏很少有目錄 – 2013-04-23 19:20:40

+1

子目錄可能需要'__init __。py'被識別爲python包;它可以是一個空文件(參考:[包](http://docs.python.org/2/tutorial/modules.html#packages)) – lnmx 2013-04-23 20:25:23

+0

它確實幫了我。 – Gang 2016-01-16 04:20:30

2

您可以通過運行python -m unittest discover -s t/,這將discover your unit tests做到這一點,並運行它們。它看起來有一個詳細的標誌,但我沒有看到一個標誌包含本地lib目錄。

+0

感謝您的命令。它似乎仍然沒有找到他們:'broadways-MacBook-Pro-2:dsa dwilliams $ python -m unittest discover -s test/ ------------------ -------------------------------------------------- - 在0.000s下運行0測試'我的測試目錄看起來像這樣'$ find test/... test/lib/company/product/subsystem/mytest.py' – 2013-04-24 16:43:16

+0

嘗試運行'python -m unittest discover -s - p'test/*/*/*/*/*。py'' - 您可以配置要用於要運行的測試文件的模式。 – girasquid 2013-04-24 19:11:26