Python将单元测试类与代码一起定义



我正在进行快速原型设计,所以现在我想将单元测试与正在测试的代码一起编写,而不是将测试放在一个单独的文件中。但是,我只想构建测试,并在我们将包含文件中的代码作为main运行的情况下调用它们。如下:

class MyClass:
    def __init(self)__:
        # do init stuff here
    def myclassFunction():
        # do something

if __name__ == '__main__':
    import unittest
    class TestMyClass(unittest.TestCase):
        def test_one(self):
            # test myclassFunction()
    suite = unittest.TestLoader().loadTestsFromTestCase(TestMyClass)
    unittest.TextTestRunner(verbosity=2).run(suite)

这当然不会运行,因为unittest无法找到或使用测试类TestMyClass。有没有办法让这种安排发挥作用,或者我必须把除了对单元测试的调用之外的所有内容都从if __name__ == '__main__'范围中提取出来?

谢谢!

如果将TestMyClass移动到if __name__ == '__main__'之上你会得到你想要的:只有当文件作为主执行时,测试才会运行

像这样的

import unittest
class MyClass:
  def __init(self)__:
    # do init stuff here
  def myclassFunction():
    # do something

class TestMyClass(unittest.TestCase):
    def test_one(self):
if __name__ == '__main__':
    unittest.main()

最新更新