小编syt*_*ech的帖子

Codecov 覆盖率报告似乎错误地省略了 __init__.py 文件

我正在使用coverage并通过我的 Travis CI 构建codecov报告我的Github 项目的覆盖率。但是,在线报告出乎意料,因为它们与本地报告不匹配,因为它们__init__.py似乎省略了根文件。
我已经查看了coverage.py 和codecov 的文档,没有任何内容突出显示,但我觉得我可能遗漏了一些明显的内容。

当我运行测试并执行时coverage report- 结果符合预期并报告89%覆盖率。请注意,该behave_webdriver\__init__.py文件已包含在内。

Name                                     Stmts   Miss  Cover
------------------------------------------------------------
behave_webdriver\__init__.py               206     26    87%
behave_webdriver\conditions.py              58      5    91%
behave_webdriver\steps\__init__.py           2      0   100%
behave_webdriver\steps\actions.py           79     12    85%
behave_webdriver\steps\expectations.py     173     14    92%
------------------------------------------------------------
TOTAL                                      518     57    89%
Run Code Online (Sandbox Code Playgroud)

这也与codecov --dump travis build 上显示的 XML 报告一致。

但是,在线报告正在报告91%覆盖范围并且似乎省略了第一个__init__.py文件。

codecov 在线报告

我希望能够在__init__.py这里看到该文件,但它似乎在报告中被省略了。不知道为什么这没有出现。

目录中的另一个__init__.py文件确实 …

python coverage.py

5
推荐指数
0
解决办法
351
查看次数

除了变量具有某些值之外,如何运行 gitlab 作业?

我想在每种情况下运行 gitlab 作业,除非定义了变量RUN并包含 value run3

再说一遍:

  • 变量RUN未定义:运行作业
  • 变量RUN已定义但不包含值run3:运行作业
  • 变量RUN已定义并且包含值run3:请勿运行作业

我尝试了以下规则:

  rules:
    - if: $RUN != null && $RUN == "run3"
      when: never

  rules:
    - if: $RUN != "" && $RUN == "run3"
      when: never

  rules:
    - if: $RUN == "run3"
      when: never 
Run Code Online (Sandbox Code Playgroud)

RUN如果没有定义变量,则不会运行任何作业。我预计这项工作已经完成。

如何修复它?逻辑上问题出在哪里?

gitlab gitlab-ci

5
推荐指数
1
解决办法
1万
查看次数

如何从 GitLab 管道向 Telegram 发送通知?

在我们的小型初创公司中,我们使用 GitLab 进行开发,使用 Telegram 进行开发人员和 PO 之间的内部通信。由于 PO 希望立即看到进度,因此我们设置了 GitLab Pipeline,以便在每次提交后将预览版本部署到 Web 服务器上。现在我们想扩大管道。因此,部署后会通过 Telegram 组发送通知。

所以问题是——这可能吗?如果可能的话,如何实现?

编辑:因为我已经实现了,所以这不是一个真正的问题。我想将答案发布在这里,以便其他人也可以使用它。

notifications gitlab telegram gitlab-ci

5
推荐指数
1
解决办法
1万
查看次数

在 gitlab 计划管道中运行特定作业

我编写了一个 gitlab-ci.yml 文件,其中包含多个 gitlab 作业和阶段。当代码合并到特定的 git 分支并且安排一些作业时,某些作业会在该分支上运行。

我想在 Gitlab 中创建一个计划的 CI/CD 管道,它只包含特定的计划作业,而不包含所有计划的作业。那可能吗?

例如,这是我的 gitlab-ci.yml 文件。

stages:
  build
  test
  deploy
  scheduled-test-1
  scheduled-test-2
  scheduled-test-3

build:
  script:
  - echo $Service_Version
  only:
  - develop
  except:
  - schedules

test:
  script:
  - echo $Service_Version
  only:
  - develop
  except:
  - schedules

deploy:
  script:
  - echo $Service_Version
  only:
  - develop
  except:
  - schedules

scheduled-test-1:
  script:
  - echo $Service_Version
  only:
  - schedules

scheduled-test-2:
  script:
  - echo $Service_Version
  only:
  - schedules

scheduled-test-3:
  script:
  - echo $Service_Version
  only:
  - schedules
Run Code Online (Sandbox Code Playgroud)

现在,当我创建计划时,所有三个计划测试都会在管道上看到。我想创建三个计划,分别包含scheduled-test-1、scheduled-test-2和scheduled-test-3。这怎么可能?

gitlab gitlab-ci

4
推荐指数
1
解决办法
4900
查看次数

Git 恢复和樱桃选择省略中间提交?

我在 GitLab 上有以下提交:

3fad532  Last commit   
3bnaj03  Fifth commit
vcn3ed5  Fourth commit xxx
aece15d  Third commit  xxx
385d65a  Second commit 
556cc58  First commit 
Run Code Online (Sandbox Code Playgroud)

我想删除第三次和第四次提交,因此我认为首先通过以下方式恢复到第二次提交:

git revert 385d65a
Run Code Online (Sandbox Code Playgroud)

然后从第五次提交开始应用樱桃选择:

git cherry-pick 3bnaj03 3fad532  
Run Code Online (Sandbox Code Playgroud)

1.上述方法是否是通过删除第 3 次和第 4 次提交来获取最后一次提交的正确方法?

2.针对这种场景有更好的方法吗?

git commit

3
推荐指数
1
解决办法
231
查看次数

我正在尝试从我的主项目中同一组内的另一个项目访问 gitlab yaml

代码:

include:
  - project: 'testing-parent-pipeline/Testing-child-push'

    file: 'script/test.yml'
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

testing-parent-pipeline/Testing-child-push未找到项目或访问被拒绝!确保管道配置中的所有包含内容均已正确定义。

gitlab gitlab-ci

2
推荐指数
1
解决办法
7058
查看次数

Django ImageField - 仅呈现 <input> 元素

我有一个 Django 表单,里面有一个ImageField,我在我的模板中呈现这样的字段:

{{ form.my_image_field }}
Run Code Online (Sandbox Code Playgroud)

生成的 HTML 如下所示:

{{ form.my_image_field }}
Run Code Online (Sandbox Code Playgroud)

我只想渲染<input元素,因为我使用的是 bootstra-fileinput 库:https://www.npmjs.com/package/bootstrap-fileinput

Currently: <a href="https://....s3.amazonaws.com/....jpg">....jpg</a>
<input name="my_image_field-clear" id="my_image_field-clear_id" type="checkbox">
<label for="my_image_field-clear_id">Clear</label><br>
Change:
<input name="my_image_field" id="id_my_image_field" type="file">
Run Code Online (Sandbox Code Playgroud)

是否可以在不<input>手动在模板中编写标签的情况下执行此操作?

django django-forms django-uploads

1
推荐指数
1
解决办法
1632
查看次数

Django F() 和 ExpressionWrapper

我试图避免数据库命中我的views.py。如果我使用 F() 和 ExpressionWrapper,我是否对数据库进行查询?我正在尝试优化我的代码,当我阅读文档时有点困惑。我还包含了 Models.py 以供参考。我正在对我正在工作的网络应用程序进行优化。

视图.py

from django.shortcuts import render
from django.db.models import F, Q, Count, Sum, ExpressionWrapper, IntegerField
from .models import Student, Subject, Enrollment


def home(request):
    student = Student.objects.all()
    subject = Subject.objects.all()
    sem_score = Enrollment.objects.all().update(sem_score=ExpressionWrapper((F("prelim_score") + F("midterm_score") + F("final_score"))/3, output_field=IntegerField()))
    enrollment = Enrollment.objects.all()
    num_student = Enrollment.objects.all().count()
    context = {"student":student, "subject":subject, "enrollment":enrollment, "num_student":num_student}
    return render(request, 'core/home.html', context)
Run Code Online (Sandbox Code Playgroud)

模型.py

class Professor(models.Model):
    name = models.CharField(max_length=50)
    
    def __str__(self):
        return self.name
    
class Student(models.Model):
    name = models.CharField(max_length=50)
    
    def __str__(self):
        return self.name
    
class Course(models.Model):
    name …
Run Code Online (Sandbox Code Playgroud)

python django django-queryset django-views

1
推荐指数
1
解决办法
8406
查看次数