AttributeError: 'module' object has no attribute 'ensuretemp'
AttributeError: 'module' object has no attribute 'ensuretemp'
按照 http://py.readthedocs.org/en/latest/path.html#basic-interactive-example
中的示例
import py
temppath = py.test.ensuretemp('py.path_documentation')
引发错误
AttributeError: 'module' 对象没有属性 'ensuretemp'
Python 版本 3.4.3,py
版本 1.4.26。
In [1]: import py
In [2]: dir(py.test)
Out[2]:
['Class',
'Collector',
'File',
'Function',
'Generator',
'Instance',
'Item',
'Module',
'Session',
'UsageError',
'__all__',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'__version__',
'_fillfuncargs',
'_preloadplugins',
'cmdline',
'collect',
'deprecated_call',
'exit',
'fail',
'fixture',
'freeze_includes',
'importorskip',
'main',
'mark',
'raises',
'set_trace',
'skip',
'xfail',
'yield_fixture']
In [4]: py.test.__file__
Out[4]: '/home/vagrant/.virtualenvs/snap/lib/python3.4/site-packages/pytest.py'
我是不是做错了什么?
不,如文档所示,您所做的一切都是正确的。我也无法让它工作。另一方面,pytest 有 fixture tmpdir
,它可以满足您在测试中的需要:为您的测试提供唯一的临时目录。
这里是一个测试例子:
def test_one(tmpdir):
test_file = tmpdir.join('dir', 'file').ensure(file=True)
test_file.write('test\ntest\n')
assert test_file.read().rsplit() == ['test', 'test']
另一方面,pytest 使用 py.path,它有 py.path.local 对象,使用 tempfile.mkdtemp
你可以创建临时目录对象:
import tempfile
tempdir = py.path.local(tempfile.mkdtemp())
您也可以直接从 py.path
使用 mkdtemp
In [127]: import py.path
In [128]: py.path.local.mkdtemp()
Out[128]: local('/tmp/tmpP1835f')
按照 http://py.readthedocs.org/en/latest/path.html#basic-interactive-example
中的示例import py
temppath = py.test.ensuretemp('py.path_documentation')
引发错误 AttributeError: 'module' 对象没有属性 'ensuretemp'
Python 版本 3.4.3,py
版本 1.4.26。
In [1]: import py
In [2]: dir(py.test)
Out[2]:
['Class',
'Collector',
'File',
'Function',
'Generator',
'Instance',
'Item',
'Module',
'Session',
'UsageError',
'__all__',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'__version__',
'_fillfuncargs',
'_preloadplugins',
'cmdline',
'collect',
'deprecated_call',
'exit',
'fail',
'fixture',
'freeze_includes',
'importorskip',
'main',
'mark',
'raises',
'set_trace',
'skip',
'xfail',
'yield_fixture']
In [4]: py.test.__file__
Out[4]: '/home/vagrant/.virtualenvs/snap/lib/python3.4/site-packages/pytest.py'
我是不是做错了什么?
不,如文档所示,您所做的一切都是正确的。我也无法让它工作。另一方面,pytest 有 fixture tmpdir
,它可以满足您在测试中的需要:为您的测试提供唯一的临时目录。
这里是一个测试例子:
def test_one(tmpdir):
test_file = tmpdir.join('dir', 'file').ensure(file=True)
test_file.write('test\ntest\n')
assert test_file.read().rsplit() == ['test', 'test']
另一方面,pytest 使用 py.path,它有 py.path.local 对象,使用 tempfile.mkdtemp
你可以创建临时目录对象:
import tempfile
tempdir = py.path.local(tempfile.mkdtemp())
您也可以直接从 py.path
mkdtemp
In [127]: import py.path
In [128]: py.path.local.mkdtemp()
Out[128]: local('/tmp/tmpP1835f')