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

Python与代码一起定义单元测试类,python,python-unittest,Python,Python Unittest,我正在进行快速原型设计,所以现在我想将单元测试与我正在测试的代码一起编写,而不是将测试放在一个单独的文件中。但是,我只希望在将包含文件中的代码作为main运行时构建测试并调用它们。详情如下: class MyClass: def __init(self)__: # do init stuff here def myclassFunction(): # do something if __name__ == '__main__': im

我正在进行快速原型设计,所以现在我想将单元测试与我正在测试的代码一起编写,而不是将测试放在一个单独的文件中。但是,我只希望在将包含文件中的代码作为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。有没有办法让这种安排发挥作用,或者如果_uname _=='_u main _u'范围中除了对unittest的调用之外,我是否必须将所有内容都提取出来


谢谢

如果将您的
TestMyClass
移动到
If\uuuuu name\uuuuu='\uuuuu main\uuuu'
您将得到您想要的: 仅当文件作为主文件执行时,测试才会运行

像这样的

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()

Pyret是一种Python方言,旨在将方法与测试交织在一起……“我是快速原型”。你这样做节省了多少时间?你是对的,但这就是我问题最后一部分的意思。有没有一种方法可以让它在不将测试类从if _; name _;块中拉出的情况下工作?为什么实际上您可能希望在同一个文件中执行此操作,@Colin?单元测试?真正节省调试时间,特别是在类定义不稳定时。此外,我更愿意在同一个文件中保持单元测试类的分离。当然,另一种选择如下面的答案所示,它不是那么糟糕,但也不是那么好。