参考:
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添加的用例