2015-07-14 4 views
1

Я прочитал, что unit-test - это блестящая функция для написания лучшего кода и утверждение о том, что функции некоторых целевых кодов остаются неизменными. Поэтому я хотел использовать его ...Ошибка при использовании учебника pytest

Я использую Anaconda на своей машине Linux.

Я начал использовать pytest, выполнив руководство для начинающего руководства on their homepage. После успешной установки появляется первый (непреднамеренная) ошибка:

[email protected]:~$ 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__? OK Я чувствую себя действительно глупо, задавая этот вопрос, но, пожалуйста, серьёзно задайте вопрос, так как я не нашел никакого намека на всемирную паутину.

+0

Это похоже на взаимодействие какого-то плагина Astropy pytest с тестовой средой. Я не уверен, как это автоматически открывается, но это не только вы. – josePhoenix

+0

Проверьте, есть ли у вас 'conftest.py', который импортирует плагины astropy. Так было в моем проекте. – josePhoenix

+0

Спасибо, что решили мою проблему ... – strpeter

ответ

2

У меня была эта проблема. Он возникает, когда вы запускаете pytest из неправильного каталога, например. где бы вы ни оказались после того, как вы его установили.

Решать,

  • создать новый каталог и компакт-диск в этот каталог
  • создать файл test_sample.py в папке с содержанием в соответствии с pytest tutorial
  • Теперь запустите команду pytest и вы увидите, результат, который показан в учебнике.

Я новичок в этом сам, но считаю, что pytest ищет структуру каталогов, откуда он запускается, ища тесты. Запустите его с неправильного места, и вы получите некоторые странные результаты, если увидите что-то, что, по его мнению, может быть испытанием.

+0

Моя вина. Действительно проблема возникает только в том случае, если папка не содержит скрипта Python. Спасибо! – strpeter

Смежные вопросы