我编写了一个测试,其中要像这样提取本地资源文件:
from pkgutil import get_data
@fixture(scope='session')
def ref_o_full():
return pd.read_csv(StringIO(get_data('test_data', 'ref_o.csv').decode()))
运行测试时,出现以下异常:
test setup failed
@fixture(scope='session')
def ref_o_full():
> return pd.read_csv(StringIO(get_data('test_data', 'ref_o.csv').decode('utf8')))
E AttributeError: 'NoneType' object has no attribute 'decode'
但是,如果我要在调试模式下运行测试,则不会发生此异常。对我来说,感觉像是某种比赛状况?
我已改用每次都可以使用的以下内容:
from pkg_resources import resource_filename
from os.path import join as join_path
@fixture(scope='session')
def ref_o_full():
dir = resource_filename(__name__, 'test_data')
return pd.read_csv(join_path(dir, 'ref_o.csv'))
答案 0 :(得分:0)
我遇到了类似的问题,只需确保_ init _ .py文件存在于“ test_data”目录中即可。这将有助于找到包裹的方法。