如何删除 py.test 中的持久对象?

How to delete persisting objects in py.test?

以下是我 运行 使用 py.test 进行的测试:

def test_config1():
    _config_file1 = "some_file_1.cfg"
    sim1 = Simulator(_config_file1)
    sim1.run()
    assert sim1.a == 4

def test_config2():
    _config_file2 = "some_file_2.cfg"
    sim2 = Simulator(_config_file2)
    sim2.run()
    assert sim2.a == 14

sim1 创建了一些对象,即使当 sim1 超出范围并且 sim2 的模拟已经开始时,这些对象仍然存在于内存中。我如何确保在 sim2 启动之前删除这些对象。我曾尝试将测试放在不同的文件中,但我假设 py.test 运行 将它们全部放在同一个进程中,因为 sim1 创建的那些对象会持续存在并导致 sim2 提供错误的结果。如果测试顺序颠倒了,sim2 运行s 没问题,但 sim1 不行。

一种方法是编写 sim1 的析构函数,删除它创建的所有对象。有没有其他方法可以删除 py.test 中的持久对象?

创建一个在每次测试开始前调用的 setUp() 或 tearDown() 方法,并删除持久对象。