Как запустить один носовой тест через setup.py в модуле python-active-directory?

Я упорно пытаюсь преобразовать модуль Python https://github.com/theatlantic/python-active-directory на Python 3. Вы можете увидеть мои усилия здесь https://github.com/nbmorgan/python-active-directory/tree/master3.

Я выяснил следующие вещи: я могу запустить набор тестов в клонированном проекте:

  1. export TEST_CONF_NAME="test.conf" ; python setup.py test or
  2. export TEST_CONF_NAME="../test.conf" ; python setup.py nosetests

Это создает огромный вывод с первым простым тестом наверху. Я пытался использовать несколько форм вариантов запуска одиночного теста, описанных в справке по настройке или тесту носа, но обычно встречался с ошибками module not found или некоторыми вариантами test not defined.

Если бы кто-нибудь мог указать мне на командную строку, которая позволила бы мне запустить только: test_client.TestADClient.test_domains, это было бы здорово.

На данный момент я использую: export TEST_CONF_NAME="../test.conf" ; python setup.py nosetests 2>&1 | cat -n | head -80 | tail -31, что глупо, но дает мне информацию.

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


person Frobbit    schedule 09.02.2019    source источник
comment
Mythical Bonus Points (MBP) за демонстрацию запуска теста с помощью отладчика + pycharm   -  person Frobbit    schedule 09.02.2019
comment
Просто к вашему сведению... знаете ли вы, что всего неделю назад они объединили PR, добавив поддержку Python 3: github.com/theatlantic/python-active-directory/pull/1   -  person cody    schedule 06.03.2019
comment
Я сжег это. Спасибо за информацию. Я все еще хочу вбить этот вопрос, чтобы люди, которые знают достаточно, чтобы быть опасными, но не знакомы с pytest/nose, могли запускать тесты в модулях.   -  person Frobbit    schedule 22.03.2019


Ответы (2)


Требуется ли запуск с использованием setup? Я запускаю определенный тест следующим образом:

nosetests tests/core/test_client.py:TestADClient.test_search --collect
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK

Но фактический запуск завершается неудачей, потому что в тестах используется фикстура pytest (аргумент conf для тестов). Поэтому вам нужно запустить его с помощью pytest.

$ pytest tests/core/test_client.py::TestADClient::test_search -vv
============================ test session starts ============
...
collected 1 item                                                             
tests/core/test_client.py::TestADClient::test_search SKIPPED                           [100%] 
person nmb.ten    schedule 07.03.2019
comment
Нет необходимости запускать программу установки. Это был единственный путь, который хоть как-то работал для меня. Где вы стоите (pwd) в дереве, когда запускаете команду pytest? - person Frobbit; 22.03.2019
comment
В корневой папке репо - ls -> ... setup.cfg setup.py tests ... - person nmb.ten; 22.03.2019

выглядит как дубликат:

Как запустить модульные тесты с установкой pip? на что я ответил некоторое время назад.

однако - setup.py test устарел, поэтому я бы не стал использовать его для новой разработки.

посмотрите на: https://setuptools.readthedocs.io/en/latest/setuptools.html#test-build-package-and-run-a-unittest-suite

поэтому для новых проектов я бы предложил использовать make-файл.

make install
make test
make clean 
# etc ... 
person bitranox    schedule 17.08.2020