如何删除 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() 方法,并删除持久对象。
以下是我 运行 使用 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() 方法,并删除持久对象。