多线程中的Python单元测试

2024-10-01 09:27:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想对一些主要做文件输入和输出的类的功能进行单元测试。此外,我想在多个核心上做这个(--jobs=4)。在

问题是,由类创建的文件通常具有相同的名称,并且它们会在多个线程中混淆。我目前所做的是在一个单独的目录中运行每个单元测试,如下所示:

def test(self):
  if os.path.exists("UniqueDir"):
    os.system("rm -rf UniqueDir")
  os.mkdir("UniqueDir")
  os.chdir("UniqueDir")
  #Do the actual testing
  os.chdir("..")
  os.rmdir("UniqueDir")

缺点非常明显:

  1. 每个测试必须接收唯一的目录名
  2. 每一个测试都有这样的源代码开销,这实在是一点都不令人愉快

我可以用什么方法来1。把我的测试分开,但有两个。用更优雅的方式来做?在

如有任何帮助、建议等,不胜感激!在

切里奥沃尔坦


Tags: 文件testself功能目录名称核心if
1条回答
网友
1楼 · 发布于 2024-10-01 09:27:03

我建议使用unittest模块,并像这样构建类:

import unittest
from tempfile import mkdtemp

class Test(unittest.TestCase):

    def setUp(self):
        self.tempdir = mkdtemp()
        os.chdir(self.tempdir)

    def tearDown(self):
        os.rmdir(self.tempdir)

    def testName(self):
        #Do the actual testing
        pass

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

另外,您可以添加多处理来创建4个线程。在

编辑:删除了操作系统.mkdir因为mkdtemp创建了一个临时目录,所以它是假的。塞巴斯蒂安。在

相关问题 更多 >