如何在PHPUnit使用dataProvider时遇到首个失败就终止测试?
解决PHP单元测试dataProvider首次出错即终止的问题
你可以通过以下方式实现需求:既让测试在首次出错时终止,又保留dataProvider中的大型输入测试用例:
一、命令行参数临时控制
运行测试时添加--stop-on-error和--stop-on-failure参数,一旦某个测试用例失败或抛出错误,PHPUnit会立即终止测试执行,不会运行后续的大型输入用例:
phpunit --stop-on-error --stop-on-failure YourTestClass.php
二、配置文件持久化设置
如果希望每次运行测试都自动生效该规则,可在phpunit.xml配置文件中添加对应配置:
<phpunit stopOnError="true" stopOnFailure="true" <!-- 其他已有配置项 --> > </phpunit>
额外优化:给测试用例命名
给dataProvider中的用例添加名称,方便后续单独运行大型输入测试:
function testFunction(array $inputOne, array $inputTwo) {...} function myDataProvider() { return [ '小型数组' => [[1,2], [3,4]], '中型数组' => [[1,2,3,4,5,6,7,8,9], [3,4,5,6,7,7,8,9,10]], '大型数组' => [<<LARGE ARRAY>>, <<LARGE ARRAY>>], ]; }
单独运行大型输入测试的命令:
phpunit --filter 'testFunction.*大型数组' YourTestClass.php
内容的提问来源于stack exchange,提问作者Iter Ator
相关产品推荐
相关产品推荐

