-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Deleting unit test is forbidden
Zhou Wei edited this page Nov 16, 2022
·
5 revisions
Deleting unit test is forbidden(English Version)
规范概要:
- 第1节,本规范说明
- 第2节,本规范的检查方法
- 第3节,未通过检查的修改建议
补充说明:
当前单测被临时禁用名单中的单测需要进一步确认无法运行的原因。如果可以通过修改OP代码来解决问题,需要进行相应的修改。
-
有些op中存在bug,很容易在单测时失败。由于各种原因,这个bug还没有被修复,只是禁用或删除了单测,这是不允许的。
-
要求:单测的数量不允许减少,只允许增加。
-
因此,为了保护现有的单测,逐步提高单测的覆盖率,提出了该规范,并在CI上设置了相应的检测机制.
-
PR_CI_Coverage
、MAC_PR_CI_python35
、PR_Windows_CI
会先检查是否有approval,如果有指定人员的approval(CI中会提示相应的审批人),则CI会自动豁免检查; -
如果没有approval,CI会开始检查当前PR: 依次执行cmake、编译构建、运行单测;
-
获取当前PR的所有单测的名称;
-
获取PaddlePaddle仓库的develop分支上所有单测的名称;
-
比较这两个版本的单测名称,如果单测的数量减少,则会进行拦截;
-
只有运行失败的单测(参见步骤2)才可能允许添加到单测被临时禁用名单中,并且您应该给出充分的理由;
-
如果已经添加到单测被临时禁用名单,并获得指定人员的approve,请勿重新提交代码,直接重新运行CI以触发豁免检查。
- 该规范目前在
PR_CI_Coverage
、MAC_PR_CI_python35
、PR_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
************************************
- 解决方案如下:
-
原则上不允许禁用单测,请自行修改OP代码,直到单测通过;
-
对于短期无法修复,确实需要禁用的单测,请寻求指定人员的approval(相应的审批人将在CI中提示);
-
请尽快修复被禁用的单测;
- 获得approval后以下信息将会出现在build_log中:
===================================
current pr ${GIT_PR_ID} has got approvals. So, Pass CI directly!
===================================
- 检测通过!
若遇到其他问题,请联系 @[xieyunshen]。