繁体   English   中英

Unittest tearDown()方法取决于完成的测试

[英]Unittest tearDown() method depends on finished test

我写硒测试,有一个问题。 在每次测试之前,我为每个测试上传不同的文件,并且在测试完成之后,即使测试失败,我也希望从应用程序中删除这些文件。 有两种方法setUptearDown 它们在每次测试之前和之后都被调用,但是我如何定义tearDown方法中哪个测试完成了? 这对我很重要,因为在每次测试之后,我都希望根据完成的测试从应用程序中删除不同的文件。

我想要类似的东西:

def tearDown(self):
    if test1_is_finished():
       remove_test1_files
    if test2_is_finished():
       remove_test2_files
    # and so on

我是Python和Selenium测试的新手,即使测试失败,也可能存在一种更好的方法可以在测试完成后执行一些工作。

setUp方法(将在每次测试之前运行)中,创建一个列表to_be_removed

def setUp(self):
    self.to_be_removed = []

在每个单元测试中,将文件名附加到to_be_removed

def test1(self):
    ...
    self.to_be_removed.append(filename)

然后,在tearDown ,删除to_be_removed列出的所有文件:

def tearDown(self):
    for filename in self.to_be_removed:
        os.unlink(filename)

这样,您可以以相同方式处理所有tearDown

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM