我想对几个主要执行文件输入和输出的类的功能进行单元测试。此外,我想在多个内核上执行此操作 (--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. 以更优雅的方式进行?
感谢任何帮助、建议等!
切里奥沃尔坦
请您参考如下方法:
我建议使用 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 创建了一个临时目录,所以它是伪造的。谢谢塞巴斯蒂安。
