參考:
http://tieba.baidu.com/p/6008699660
首先造成這個結果的原因是pycharm配置問題
問題驗證:
測試代碼:
import unittest class Testadd(unittest.TestCase): def setUp(self): self.a = 20 self.b = 10 def test_add(self): result = self.a + self.b self.assertEqual(result,30) def test_sub(self): result = self.a -self.b self.assertEqual(result,10) if __name__ == "__main__": suite = unittest.TestSuite() suite.addTest(Testadd("test_add")) runner = unittest.TextTestRunner() runner.run(suite)
pycharm執行效果:
命令行執行效果
問題解決:
-
點擊pycharm的右上角下拉菜單,點擊Edit configurations
-
將Python tests里的對應文件的py.test for...或者unittest for...的文件刪除(選中后點擊左上角的減號)
-
點擊+,在下拉菜單中選擇Python,然后在右邊的script path里...選中所要運行的文件
-
最后點擊ok即可,再在所要運行的文件處(最好是main處)點擊右鍵就會發現run unittest變成了run
再次在pycharm中運行,well done
總結:
執行unittest in demoSingle就會運行全部case
而如果運行py文件本身就會只運行addsuite添加的用例