如何在Foundry代码存储库中强制执行最低测试覆盖率?

问题描述

我不仅要在Foundry代码存储库中编写单元测试,而且还希望对通过检查强制执行最小的覆盖范围。

最佳实践是确保使用单元测试覆盖至少一部分代码,但是标准存储库中似乎不需要测试。

如何在Foundry代码存储库中完成两个测试目标?

解决方法

您可以使用PyTest Coverage计算覆盖率并强制执行最小百分比。

  1. 将以下内容添加到您的仓库的meta.yml中:
...

test:
  requires:
    - pytest-cov
...

注意:这是 需求部分的一部分。

  1. pytest.ini上创建一个/transforms-python/src/pytest.ini文件,其内容如下:
[pytest]
addopts = --cov=<<package name,e.g. myproject>> --cov-report term --cov-fail-under=100

注意:如果需要,您可以将执行百分比从100下调

您的测试现在将失败,即使它们包括 some 个单元测试,如果覆盖范围阈值低于您配置的值:

checks