我有一个要求,至少需要达到80%的线路覆盖率。我有一些文件,其中大部分代码if __name__ == '__main__':都不需要测试。
我如何指示 SonarQube 从测试覆盖率中排除该部分代码。我已经看到有一些选项可以使用sonar.exclusions和排除文件和模块sonar.coverage.exclusions。排除文件的某些部分对我来说会有很大的帮助。例如,我想if __name__ == '__main__':从 sonarQube 中排除以下块中的所有内容:
#Test Everything inside this method
def do_something():
# Some code
# Do not test and include the following codes in the SonarQube coverage
if __name__ == '__main__':
# A lot of codes for running different functions of this module
Run Code Online (Sandbox Code Playgroud)
我已经找到了问题的解决方案。这就是为什么我要为其他人提供帮助。我们使用pytest和coverage来计算覆盖率报告。SonarQube 刚刚阅读了该报道。为了排除某些行,我们在该行后面添加了以下内联注释:
# pragma: no cover
Run Code Online (Sandbox Code Playgroud)
例如,该行print("Hello World")将从测试覆盖率报告中排除,
if __name__=="__main__":
print("Hello World") # pragma: no cover
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3014 次 |
| 最近记录: |