我正在从事一个项目,该项目有许多“单元测试”,这些单元测试具有需要与数据库和其他 API 交互的硬依赖性。这些测试对我们的团队来说是宝贵且有用的资源,但如果不依赖测试环境中其他服务的功能,它们就无法独立运行。我个人会将这些称为“功能测试”,但这只是我们团队中已经建立的语义。
问题是,既然我们开始在我们的代码中引入更多的纯单元测试,我们就会有一堆有或没有外部依赖性的测试。这些测试可以在 checkout 代码后立即运行,无需安装或配置其他工具。它们也可以在像 jenkins 这样的持续集成环境中运行。
所以我的问题是,如何表示哪个是更清晰的分离?单元测试库中是否有现有的装饰器?
最佳答案
您可以使用 skipIf
装饰器定义应该跳过哪个测试。结合设置环境变量,您可以跳过某些环境中的测试。一个例子:
from unittest import skipIf
class MyTest(Testcase):
@skipIf(os.environ.get('RUNON') == 'jenkins', 'Does not run in Jenkins')
def test_my_code(self):
...
关于python - 如何将 Python 单元测试指定为具有数据库依赖性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39127624/