Ошибка при использовании учебника по Pytest
Я прочитал, что модульный тест - это отличная возможность писать лучший код и утверждать, что функции некоторого целевого кода остаются прежними. Поэтому я хотел использовать это...
Я использую Anaconda на моей машине с Linux.
Я начал использовать pytest
работая с руководством по началу работы на главной странице. После успешной установки появляется первая (непреднамеренная) ошибка:
strpeter@linuxComputer:~$ py.test
================================================== test session starts ===================================================
platform linux2 -- Python 2.7.8 -- py-1.4.25 -- pytest-2.6.3
collected 0 items / 1 errors
========================================================= ERRORS =========================================================
___________________________________________________ ERROR collecting . ___________________________________________________
anaconda/lib/python2.7/site-packages/py/_path/common.py:331: in visit
for x in Visitor(fil, rec, ignore, bf, sort).gen(self):
anaconda/lib/python2.7/site-packages/py/_path/common.py:377: in gen
for p in self.gen(subdir):
anaconda/lib/python2.7/site-packages/py/_path/common.py:377: in gen
for p in self.gen(subdir):
anaconda/lib/python2.7/site-packages/py/_path/common.py:377: in gen
for p in self.gen(subdir):
anaconda/lib/python2.7/site-packages/py/_path/common.py:377: in gen
for p in self.gen(subdir):
anaconda/lib/python2.7/site-packages/py/_path/common.py:367: in gen
if p.check(dir=1) and (rec is None or rec(p))])
anaconda/lib/python2.7/site-packages/_pytest/main.py:628: in _recurse
ihook.pytest_collect_directory(path=path, parent=self)
anaconda/lib/python2.7/site-packages/_pytest/main.py:166: in call_matching_hooks
plugins = self.config._getmatchingplugins(self.fspath)
anaconda/lib/python2.7/site-packages/_pytest/config.py:688: in _getmatchingplugins
plugins += self._conftest.getconftestmodules(fspath)
anaconda/lib/python2.7/site-packages/_pytest/config.py:521: in getconftestmodules
mod = self.importconftest(conftestpath)
anaconda/lib/python2.7/site-packages/_pytest/config.py:554: in importconftest
self._onimport(mod)
anaconda/lib/python2.7/site-packages/_pytest/config.py:674: in _onimportconftest
self.pluginmanager.consider_conftest(conftestmodule)
anaconda/lib/python2.7/site-packages/_pytest/core.py:201: in consider_conftest
if self.register(conftestmodule, name=conftestmodule.__file__):
anaconda/lib/python2.7/site-packages/_pytest/core.py:100: in register
reg(plugin, name)
anaconda/lib/python2.7/site-packages/_pytest/config.py:613: in _register_plugin
call_plugin(plugin, "pytest_configure", {'config': self})
anaconda/lib/python2.7/site-packages/_pytest/core.py:265: in call_plugin
kwargs=kwargs, firstresult=True).execute()
anaconda/lib/python2.7/site-packages/_pytest/core.py:315: in execute
res = method(**kwargs)
anaconda/lib/python2.7/site-packages/astropy/tests/pytest_plugins.py:78: in pytest_configure
if not config.getoption('remote_data'):
anaconda/lib/python2.7/site-packages/_pytest/config.py:836: in getoption
raise ValueError("no option named %r" % (name,))
E ValueError: no option named u'remote_data'
DO *NOT* COMMIT!
================================================ 1 error in 2.77 seconds =================================================
Я хотел бы понять, откуда эта глупая ошибка и как я могу ее исправить. Проблема в том, что я выполняю программу py.test
без какого-либо имени файла и что нет файла с именем __init.py__
? Хорошо, я чувствую себя действительно глупо, задавая этот вопрос, но, пожалуйста, отнеситесь к нему серьезно, так как я не нашел ни единого намека во всемирной сети.
1 ответ
У меня только что была эта проблема. Он возникает, когда вы запускаете pytest из неправильного каталога, например, где бы вы ни оказались после того, как вы его установили.
Решать,
- создать новый каталог и CD в этот каталог
- создать файл
test_sample.py
в вашем каталоге с содержанием в соответствии с учебником по Pytest - Теперь запустите команду
pytest
и вы увидите результат, который показан в учебнике.
Я сам новичок в этом, но я верю, что pytest ищет структуру каталогов, из которой он запускается, в поисках тестов. Запустите его не из того места, и вы получите странные результаты, если увидите что-то, что, по его мнению, может быть проверкой.