В Python3 unittest не отображает имя выполненного тестового примера, статус тестового прогона, однако на Python2 все хорошо - PullRequest
0 голосов
/ 17 октября 2019

Я портирую существующий код проекта на python 3.7, а также буду поддерживать его совместимость с python 2.7.

У нас есть куча юнит-тестов и файл setup.py, определяющий setup ():

def my_test_suite():
    test_loader = unittest.TestLoader()
    test_suite = test_loader.discover('sys/unittests', pattern='test_mytest.py')
    return test_suite

if __name__ == '__main__':
setup(name='xxxx',
      version='0.0.1',
      description='blah blah',
      author='myTeam',
      author_email='xyz@abcd.com',
      license='MIT',
      packages=find_packages(),
      scripts=['apid'],
      test_suite='setup.my_test_suite',
      install_requires=[
          'docker',
          'enum34',
          'ipaddress',
          'netifaces',
          'psutil',
          'pytest-mock',
          'pyyaml',
          'request_id',
          'semver',
          'validators',
          'web.py',
      ],
      include_package_data=True,
      zip_safe=False)

Когда я выполняю следующую команду:

python setup.py test

Эта команда дает подробный ожидаемый результат (информацию о названии теста, состоянии и т. Д.) С Python 2.7, например,

[commonutils] - Test validate_hostname_err method .................... ... systemapi ERROR    common_utils MainThread   Hostname is not valid: -test-01
ok

Однако,для Python 3.7 такая информация (отчет) не предоставляется, а только ожидаемое сообщение об ошибке (отрицательный тестовый случай), такое же, как указано выше, например

systemapi ERROR    common_utils MainThread   Hostname is not valid: -test-01

Я также пытался использовать -v (--verbose), но это не такТ помогло. Я просмотрел документацию по python 3.x для unittest, но не смог найти такое изменение, которое вызовет эту проблему. Любая помощь высоко ценится.

...