使用Unittest做單元測試,addTest()單個case的時候卻執行全部的case


 

參考:

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執行效果:

命令行執行效果

 問題解決:

 

  1. 點擊pycharm的右上角下拉菜單,點擊Edit configurations

     
  2. 將Python tests里的對應文件的py.test for...或者unittest for...的文件刪除(選中后點擊左上角的減號)

     

  3. 點擊+,在下拉菜單中選擇Python,然后在右邊的script path里...選中所要運行的文件

  4. 最后點擊ok即可,再在所要運行的文件處(最好是main處)點擊右鍵就會發現run unittest變成了run

 

 

再次在pycharm中運行,well done

 

總結:

執行unittest in demoSingle就會運行全部case

 

而如果運行py文件本身就會只運行addsuite添加的用例

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM