我正在进行快速原型设计,所以现在我想将单元测试与正在测试的代码一起编写,而不是将测试放在一个单独的文件中。但是,我只想构建测试,并在我们将包含文件中的代码作为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()