【发布时间】:2023-03-17 15:59:01
【问题描述】:
我正在开发一个具有可靠单元测试覆盖率的 PHP 项目。
我注意到,上次我使用 unit-tests 命令行测试运行器的 --filter 命令进行了非常棘手的操作。
以下是官方文档中对该命令的解释:
--过滤器
仅运行名称与给定模式匹配的测试。模式可以是单个测试的名称,也可以是匹配多个测试名称的正则表达式。
我经常使用它,因为有时只运行整个测试库中的单个测试套件或测试用例会变得非常有用。
我想知道这是否是好的做法?
我听说有时在您的持续集成机器上运行整个测试套件是一种很好的做法,如果您确定您只修改了一个组件并且100%百分比置信度,它不会通过其他组件的单元测试。 你怎么看?
前段时间我认为我们不应该太在意运行所有单元测试的整个套件所需的时间,但是当您有非常复杂的业务逻辑和单元测试时 - 这可能会花费大量时间。
我明白,“真正的”单元测试不应该与数据库交互,使用模拟/存根对象,我同意这一点。但有时,使用 DB 固定装置进行测试更容易(更便宜)。
请给我一些建议,如何解决这个问题?
【问题讨论】:
标签: performance unit-testing continuous-integration phpunit tagging