Skip to content

Deleting unit test is forbidden

Zhou Wei edited this page Nov 16, 2022 · 5 revisions

不允许禁用单测(Deleting unit test is forbidden)


Deleting unit test is forbidden(English Version)


规范概要:

  • 第1节,本规范说明
  • 第2节,本规范的检查方法
  • 第3节,未通过检查的修改建议

补充说明:

当前单测被临时禁用名单中的单测需要进一步确认无法运行的原因。如果可以通过修改OP代码来解决问题,需要进行相应的修改。

本规范说明

  • 有些op中存在bug,很容易在单测时失败。由于各种原因,这个bug还没有被修复,只是禁用或删除了单测,这是不允许的。

  • 要求:单测的数量不允许减少,只允许增加。

  • 因此,为了保护现有的单测,逐步提高单测的覆盖率,提出了该规范,并在CI上设置了相应的检测机制.

本规范的检查方法

  1. PR_CI_CoverageMAC_PR_CI_python35PR_Windows_CI会先检查是否有approval,如果有指定人员的approval(CI中会提示相应的审批人),则CI会自动豁免检查;

  2. 如果没有approval,CI会开始检查当前PR: 依次执行cmake、编译构建、运行单测;

  3. 获取当前PR的所有单测的名称;

  4. 获取PaddlePaddle仓库的develop分支上所有单测的名称;

  5. 比较这两个版本的单测名称,如果单测的数量减少,则会进行拦截;

  6. 只有运行失败的单测(参见步骤2)才可能允许添加到单测被临时禁用名单中,并且您应该给出充分的理由;

  7. 如果已经添加到单测被临时禁用名单,并获得指定人员的approve,请勿重新提交代码,直接重新运行CI以触发豁免检查。

未通过检查的修改建议

  • 该规范目前在 PR_CI_CoverageMAC_PR_CI_python35PR_Windows_CI中启用。
  • 存量问题已经被修改或添加到单测被临时禁用名单。禁用单测将无法通过CI检查,在build_log中会出现如下报错信息:
************************************
It is forbidden to disable or delete the unit-test.

If you must delete it temporarily, please add it [https://github.com/PaddlePaddle/Paddle/wiki/Temporarily-disabled-Unit-Test]
Then you must have one RD (kolinwei(recommended) or zhouwei25 or luotao1) approval for the deletion of unit-test. 

If you have any problems about deleting unit-test, please read the specification [https://github.com/PaddlePaddle/Paddle/wiki/Deleting-unit-test-is-forbidden]. 

Following unit-tests are deleted in this PR:
test_1
test_2
test_3
...
test_n

************************************
  • 解决方案如下:
  1. 原则上不允许禁用单测,请自行修改OP代码,直到单测通过;

  2. 对于短期无法修复,确实需要禁用的单测,请寻求指定人员的approval(相应的审批人将在CI中提示);

  3. 请尽快修复被禁用的单测;

  • 获得approval后以下信息将会出现在build_log中:
===================================

current pr ${GIT_PR_ID} has got approvals. So, Pass CI directly!

===================================
  • 检测通过!

若遇到其他问题,请联系 @[xieyunshen]。

Clone this wiki locally