当前位置: 代码迷 >> python >> 如何对python进程进行单元测试
  详细解决方案

如何对python进程进行单元测试

热度:51   发布时间:2023-07-16 10:29:49.0

我正在尝试为 python 进程编写单元测试。 我想运行该过程几秒钟,然后执行断言以确保该过程的实例变量等于预期值。

class MyProcess(multiprocessing.Process):
    def run():
       ......

class TestMultiProcess(unittest.TestCase):

    def testStuff(self):
        process = MyProcess()
        process.start()
        time.sleep(20)
        process.exit.set()
        process.join()

        assert(process.ivar == 42)

问题出在最后一行。 因为是进程而不是线程,所以无法直接得到ivar的值(总是等于0)。 我想知道获得该 ivar 的首选方法是什么?

如果可能,对使用multiprocessing运行的代码进行单元测试的首选方法是直接测试单个函数。

要从另一个进程获取值,您可以发送它: mp.Pipe()mp.Queue()或者您可以使用共享值: mp.Value()