[英]Python unit-testing in multiple threads
我想对一些主要用于文件输入和输出的类的功能进行单元测试。 此外,我想在多个内核上执行此操作(--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.以一种更优雅的方式进行?
任何帮助,建议等,不胜感激!
凯里奥·沃尔坦(Cherio Woltan)
我建议使用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个线程。
编辑:删除了os.mkdir,因为mkdtemp创建了一个临时目录,所以它是虚假的。 塞巴斯蒂安(Thx Sebastian)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.