【问题标题】:Unittest not testing (python)单元测试不测试(python)
【发布时间】:2016-05-23 09:36:17
【问题描述】:

这是我的代码:

import unittest

from sallad.Puppgift import Kundenssallad

class Test_kundenssallad(unittest.TestCase):

    def test_av_objekt(self):
        namn = "Grekisksallad"
        slutpris = 60
        tillval = "gurka"
        kundenssallad = Kundenssallad(namn, slutpris, tillval)
        self.assertIsInstance(kundenssallad, Kundenssallad)
        self.assertEqual(kundenssallad.slutpris, 60)
        self.assertEqual(kundenssallad.tillval, "gurka")

if __name__ == "__main__":
    unittest.main()

在 PyCharm 中运行此代码后,我得到:

Testing started at 11:32 ...

Process finished with exit code 0

我希望程序打印如下内容:

...
----------------------------------------------------------------------
Ran 3 tests in 0.000s

OK

为什么测试似乎没有执行?

【问题讨论】:

  • 尝试跟踪打印,看看你的test_av_objekt-方法是否没有通过某个点,或者它是否能够执行到最后。
  • 它们在 PyCharm 运行窗口中执行,使用面向测试的布局。如果你愿意,我可以制作一个小动画 gif 给你看。
  • 另外,请注意正在运行的命令的性质...PyCharm 具有 Python 调用 /Applications/PyCharm.app/Contents/helpers/pycharm/utrunner.py 并带有您的文件名参数. utrunner.py 管理测试的运行,因此文件名中包含 utrunner。

标签: python unit-testing pycharm


【解决方案1】:

你还没有告诉 unittest 要运行什么测试套件。 pycharm 与 if name == "ma​​in" 不匹配? 尝试添加一些调试并打印 name

像这样运行它:

if __name__ == "__main__":
    unittest.main()
    suite = unittest.TestLoader().loadTestsFromTestCase(Test_kundenssallad)
    unittest.TextTestRunner(verbosity=2).run(suite)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    相关资源
    最近更新 更多