Django-jenkins --enable-coverage returns 'Coverage' 对象没有属性 'data'
Django-jenkins --enable-coverage returns 'Coverage' object has no attribute 'data'
我正在使用 django-jenkins v0.110.0 和 coverage v5.2.1 以及 Django v3.1 。
如主题所述,当我 运行:
python manage.py jenkins --enable-coverage
我收到这个错误:
AttributeError: 'Coverage' object has no attribute 'data'
下面是整个堆栈回溯:
Traceback (most recent call last):
File "manage.py", line 16, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.8/site-packages/django_jenkins/management/commands/jenkins.py", line 47, in run_from_argv
super(Command, self).run_from_argv(argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv
super().run_from_argv(argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 371, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.8/site-packages/django_jenkins/management/commands/jenkins.py", line 116, in handle
coverage.save(tested_locations, options)
File "/usr/local/lib/python3.8/site-packages/django_jenkins/tasks/with_coverage.py", line 29, in save
self.coverage.stop()
File "/usr/local/lib/python3.8/site-packages/django_jenkins/tasks/with_coverage.py", line 55, in get_morfs
return [filename for filename in coverage.data.measured_files()
AttributeError: 'Coverage' object has no attribute 'data'
tests.py 中的测试方法 运行 正确,junit.xml 是在 reports 目录下生成的。
但肯定没有覆盖率报告,因为这个错误。
我在这里错过了什么吗?我应该指定一个覆盖率配置文件(coverage.rc)让它工作吗?它与 python3.8 不兼容吗?其他问题?
非常感谢任何想法。提前致谢!
你有依赖问题。 django-jenkins latest release was in september 2016. django v3 于 2019 年 9 月发布。您必须及时将 django 降级到那个时期的版本。
我强烈建议您不要解决这个问题,而是select一个不同于django-jenkins
的解决方案。
就个人而言,我使用 tox
,因此我可以在任何 ci/cd 工具上部署我的测试和工具,并结合调用 coverage
/pytest
和任何及所有工具 ( black
、mypy
、safety
、flake8
等)。 django-jenkins 之类的包装器库太不可靠,或者由于包装而使功能无法访问。如果您需要高级入门,请使用我的 tox.ini。
祝你好运。
这已经晚了,但以防万一其他人在使用 django-jenkins 和 coverage 时遇到这个问题。我设法通过使用 coverage==4.3.4 让它再次工作。我这样做是因为从 django-jenkins github 我看到他们正在使用这个版本的覆盖率。
我正在使用 django-jenkins v0.110.0 和 coverage v5.2.1 以及 Django v3.1 。 如主题所述,当我 运行:
python manage.py jenkins --enable-coverage
我收到这个错误:
AttributeError: 'Coverage' object has no attribute 'data'
下面是整个堆栈回溯:
Traceback (most recent call last):
File "manage.py", line 16, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.8/site-packages/django_jenkins/management/commands/jenkins.py", line 47, in run_from_argv
super(Command, self).run_from_argv(argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv
super().run_from_argv(argv)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 371, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.8/site-packages/django_jenkins/management/commands/jenkins.py", line 116, in handle
coverage.save(tested_locations, options)
File "/usr/local/lib/python3.8/site-packages/django_jenkins/tasks/with_coverage.py", line 29, in save
self.coverage.stop()
File "/usr/local/lib/python3.8/site-packages/django_jenkins/tasks/with_coverage.py", line 55, in get_morfs
return [filename for filename in coverage.data.measured_files()
AttributeError: 'Coverage' object has no attribute 'data'
tests.py 中的测试方法 运行 正确,junit.xml 是在 reports 目录下生成的。 但肯定没有覆盖率报告,因为这个错误。 我在这里错过了什么吗?我应该指定一个覆盖率配置文件(coverage.rc)让它工作吗?它与 python3.8 不兼容吗?其他问题?
非常感谢任何想法。提前致谢!
你有依赖问题。 django-jenkins latest release was in september 2016. django v3 于 2019 年 9 月发布。您必须及时将 django 降级到那个时期的版本。
我强烈建议您不要解决这个问题,而是select一个不同于django-jenkins
的解决方案。
就个人而言,我使用 tox
,因此我可以在任何 ci/cd 工具上部署我的测试和工具,并结合调用 coverage
/pytest
和任何及所有工具 ( black
、mypy
、safety
、flake8
等)。 django-jenkins 之类的包装器库太不可靠,或者由于包装而使功能无法访问。如果您需要高级入门,请使用我的 tox.ini。
祝你好运。
这已经晚了,但以防万一其他人在使用 django-jenkins 和 coverage 时遇到这个问题。我设法通过使用 coverage==4.3.4 让它再次工作。我这样做是因为从 django-jenkins github 我看到他们正在使用这个版本的覆盖率。