You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从PHPUnit上次失败的位置继续执行单元测试?

PHPUnit 从指定测试开始执行的解决方案

方法一:使用 --start-at-test-number 参数(PHPUnit 9.3+ 适用)

这是最直接的方案,PHPUnit 9.3及以上版本支持通过测试编号指定起始执行位置:

  1. 先确认你的PHPUnit版本:
    php ./vendor/bin/phpunit --version
    
  2. 执行从第451个测试开始的所有测试:
    php ./vendor/bin/phpunit -c ./phpunit.xml --start-at-test-number 451
    

方法二:针对低版本PHPUnit(低于9.3)

如果你的PHPUnit版本不支持--start-at-test-number,可以先列出所有测试的顺序和标识,再用--filter定位起始点:

  1. 列出所有测试的完整列表及顺序:
    php ./vendor/bin/phpunit -c ./phpunit.xml --list-tests
    
  2. 在输出中找到第451个测试的类名或方法名,比如假设是App\Tests\PaymentTest::testRefund,然后执行从该测试开始的所有内容:
    php ./vendor/bin/phpunit -c ./phpunit.xml --filter '/^App\\Tests\\PaymentTest.*/'
    
    注:正则表达式会匹配该测试类下的所有测试,以及后续按默认顺序排列的测试类

补充说明

  • 测试编号是PHPUnit按默认执行顺序生成的,和你之前运行测试时的输出顺序一致
  • 如果只是想单独运行修复后的那个测试,可以直接指定测试方法:
    php ./vendor/bin/phpunit -c ./phpunit.xml --filter 'App\Tests\PaymentTest::testRefund'
    

内容的提问来源于stack exchange,提问作者Hamed Kamrava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:46:18