我正在使用鼻子测试框架。运行测试模块时,其中定义的拆卸功能失败。引发的错误表示夹具被另一个进程锁定。这是我的测试模块test_my_module.py:
... ...
def teardown():
if os.path.exists(test_output_dir):
shutil.rmtree(test_output_dir)
... ...
@with_setup(init_test_db, destroy_test_db)
def test_foo1():
eq_(foo1(),1)
@with_setup(init_test_db, destroy_test_db)
def test_foo2():
eq_(foo2(),2)
... ...
test_output_dir中有一个 db(sqlite3) 文件,用作夹具。实际上,由于它被其他进程锁定,因此无法通过拆卸删除该 db 文件。据我了解,在所有测试功能完成运行后,将始终运行拆解。那么为什么会这样呢?为什么那些测试功能仍然可以锁定 db 文件?是 sqlite3 问题还是我的测试代码有问题?