【发布时间】:2010-10-12 14:43:31
【问题描述】:
我正在使用nose 测试框架。运行测试模块时,其中定义的拆卸功能失败。引发的错误表示夹具被另一个进程锁定。这是我的测试模块,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 问题还是我的测试代码有问题?
【问题讨论】:
-
您能否提供更多关于您的
init_test_db、destroy_test_db和fooN函数中发生的事情的详细信息?
标签: python unit-testing nose fixture