python - 几个测试的单元测试设置/拆卸

标签 python unit-testing

是否有在测试场景开始/结束时触发的函数? setUp 和 tearDown 函数在每次测试之前/之后触发。

我通常想要这个:

class TestSequenceFunctions(unittest.TestCase):

    def setUpScenario(self):
        start() #launched at the beginning, once

    def test_choice(self):
        element = random.choice(self.seq)
        self.assertTrue(element in self.seq)

    def test_sample(self):
        with self.assertRaises(ValueError):
            random.sample(self.seq, 20)
        for element in random.sample(self.seq, 5):
            self.assertTrue(element in self.seq)

    def tearDownScenario(self):
        end() #launched at the end, once

目前,这些setUp和tearDown都是单元测试,分布在我所有的场景中(包含很多测试),一个是第一个测试,一个是最后一个测试。

最佳答案

从 2.7 开始(根据 the documentation )您将获得 setUpClasstearDownClass,它们分别在给定类中的测试运行之前和之后执行。或者,如果您在一个文件中有一组模块,则可以使用 setUpModuletearDownModule ( documentation )。

否则,您最好的选择可能是创建您自己的派生 TestSuite并覆盖 run()。所有其他调用都将由父级处理,而 run 将围绕对父级 run 方法的调用调用您的设置和拆卸代码。

关于python - 几个测试的单元测试设置/拆卸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45968514/

相关文章:

python - Selenium 2.0rc3点击功能太快?

python - 图 Python 3 兼容吗?

python - 使用 Python 进行多季节预测的 Holt-Winters

sql-server - Powershell SMO Restore脚本的单元测试

silverlight - Silverlight 5 的最佳模拟框架

python base64字符串解码

python - 如何通过命令行将多个列表参数传递给多个pytest装置

django - 模拟 Django 存储模型 ImageField 后端 S3

c# - 单元测试忽略并提供相关解释

c# - CloudConfigurationManager.GetSetting 在单元测试中返回 Null