如何仅对PR中更改的功能运行覆盖率报告?

时间:2018-09-19 21:07:12

标签: python code-coverage travis-ci coverage.py test-coverage

我正在做一个庞大的Django项目,该项目需要几个小时才能生成一份覆盖率报告(使用coverage.py库)。相反,我希望travis仅生成有关PR中已更改功能的报告。

我目前的想法是在.travis.yml中写一些东西,以便在我的分支和要对其进行PR的分支之间运行git diff,从输出中获取函数名称,然后运行测试涵盖这些功能。

这似乎是其他人必须遇到的问题,有没有更清洁的方法?

1 个答案:

答案 0 :(得分:0)

在我以前的回答之一中,我帮助某人将他们最后修改的php文件保存在git文件夹中(不是您所需要的,但这可能会对您有所帮助)。

检查以下内容:

https://stackoverflow.com/a/50128977/9395299

还要看这个问题:

Is there a way to ask git diff to show the method name instead of the class name?

它指向以下文档:

https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header

这可能会对您有所帮助。

我之前从未做过,但是显然您可以指定git diff属性来显示您真正需要的内容(在您的情况下为python函数)。

从那里您可以获取功能列表,并将其传递给您的报道记者。