Django-jenkins --enable-coverage返回'Coverage'对象没有属性'data'

问题描述

我正在将 django-jenkins v0.110.0 coverage v5.2.1 Django v3.1 一起使用。 如主题中所述,当我运行时:

foreach ($request->txt_language as $language => $l){
    $data = new  Language;
    $data->candidate_id => $candidateID,$data->language =>  $request->txt_language[$language],$data->reading =>  $request->txt_reading[$language],$data->writing =>  $request->txt_writing[$language],$data->speaking =>  $request->txt_speaking[$language],$data->save();
}

我收到此错误

AttributeError:“覆盖”对象没有属性“数据”

下面是整个堆栈的回溯:

python manage.py jenkins --enable-coverage

tests.py中的测试方法已正确运行,并且在报告目录下生成了junit.xml。 但是绝对不会有覆盖报告,因为这个错误。 我在这里想念什么吗?我应该指定一个覆盖配置文件(coverage.rc)使其起作用吗?它与python3.8不兼容吗?还有其他问题吗?

任何想法都将不胜感激。预先感谢!

解决方法

您有依赖性问题。 django-jenkins 最新版本于2016年9月发布。django v3已于2019年9月发布。您必须将Django降级为该时期的发布。

我强烈建议您解决此问题,而是选择django-jenkins以外的其他解决方案。

我个人使用tox,因此可以将我的测试和工具部署在任何ci / cd工具上,并结合调用coverage / pytest和任何其他工具({{1} },blackmypysafety等)。诸如django-jenkins之类的包装程序库过于可靠,或者由于包装而使功能无法访问。如果您需要高级入门,请使用我的tox.ini

祝你好运。