2016-03-31 17 views
0

Это широкий вопрос, потому что никто, кажется, не нашел для него решения, поэтому я думаю, что просить увидеть рабочий пример может оказаться более полезным. Итак, вот так:Python: Nosetests с несколькими файлами

Кто-нибудь запускает nosetests в проекте python, используя импорт нескольких файлов/пакетов?

То, что я имею в виду, у вас есть список каталогов, таких как:

project/ 
    | 
    |____app/ 
      |___main.py 
      |___2ndFile.py 
      |___3rdFile.py 
    |____tests/ 
      |____main_tests.py 

Где ваш импорт main.py несколько файлов и вы выполняете nosetests из файла проекта с использованием тестового сценария в Файл main_tests.py? Если да, пожалуйста, можете ли вы сделать снимок раздела импорта как всех основных файлов, так и файла main_tests.py?

Это, как представляется, одной из основных проблем в nosetests, без очевидного решения:

+1

Это ваш второй вопрос по этой же теме. Я задал вам два вопроса, на которых вы не обращали внимание на тот, который, скорее всего, станет причиной неудачи. Вернитесь к своему вопросу и снова просмотрите комментарии. Вы не должны публиковать один и тот же вопрос дважды. Но это очень распространенная вещь, которая работает. – idjaw

+0

Истинная тема, другой подход. – Jeeves

ответ

2
  1. Вы не можетеимеют модули python, начинающиеся с цифры, поэтому 2ndFile.py, 3rdFile.py фактически не будут работать (переименовать их).
  2. В каталоге приложения вам понадобится __init__.py, поскольку он считается пакетом, поэтому добавьте его (это может быть пустой файл).
  3. Вам не нужен __init__.py в каталоге тестов!
  4. Операторы импорта в main_tests.py должен выглядеть from app.main import blah
  5. Абсолютный путь к каталогу project должен быть в вашем sys.path. Для этого задайте переменную окружения: export PYTHONPATH=/path/to/project

Теперь работающие носеты должны работать.

+0

Привет, спасибо, я удалил __init__.py и добавил из appmain import blah, как было предложено, и повторные носетиты - никаких ошибок. Однако, когда я запускаю python app.py, я получаю сообщение об ошибке, которое я получил для nosetests, ImportError: Нет модуля с именем ex48.2ndFile – Jeeves

+0

Снова прочитайте пункт 1. У вас не может быть модуля 2ndFile.py – wim

+0

Имена файлов являются просто примерами - ни один в фактическом каталоге не начинается с чисел. Кроме того, где именно вы устанавливаете абсолютный путь к каталогу проекта, то есть. export PYTHONPATH =/path/to/project --- это внутри файла * .py или окружающей среды в самой системе? – Jeeves

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