您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
phpunit使用@requires 跳过测试
发布时间:2021-09-21 22:13:11编辑:雪饮阅读()
像上篇为了根据判断结果,比如判断某个扩展不存在,则跳过当前测试类中所有测试方法的测试。使用的是markTestSkipped方法
那么除了这种以外还有一种就是标注@requires来实现跳过测试方法,而且这个测试不仅仅是让整个测试类的所有方法都不进行测试,而是可以标注到指定某个方法上面的。
DatabaseTest.php:
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class DatabaseTest extends TestCase
{
/**
* @requires PHP >= 7.4
*/
public function testConnection(): void
{
$this->assertTrue(true);
}
public function testAdd(): void
{
$this->assertTrue(true);
}
}
那么这里要求php必须是大于7.4的,我们在php7.3.4中运行这个测试
C:\Users\Administrator\PhpstormProjects\untitled\organizing>D:\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe D:\phpstudy_pro\Extensions\php\php7.3.4nts\phpunit-9.5.8.phar C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\DatabaseTest.php --verbose
PHPUnit 9.5.8 by Sebastian Bergmann and contributors.
Runtime: PHP 7.3.4
Configuration: C:\Users\Administrator\PhpstormProjects\untitled\organizing\phpunit.xml
S. 2 / 2 (100%)
Time: 00:00.008, Memory: 20.00 MB
There was 1 skipped test:
1) DatabaseTest::testConnection
Warning: include(PHPUnit\Composer\Autoload\ClassLoader.php): failed to open stream: No such file or directory in C:\Users\Administrator\PhpstormProjects\untitled\organizing\src\autoload.php on line 3
Call Stack:
0.0152 1571576 1. {main}() D:\phpstudy_pro\Extensions\php\php7.3.4nts\phpunit-9.5.8.phar:0
0.1412 18893584 2. PHPUnit\TextUI\Command::main(???) D:\phpstudy_pro\Extensions\php\php7.3.4nts\phpunit-9.5.8.phar:2249
0.1412 18893696 3. PHPUnit\TextUI\Command->run(array(3), true) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/Command.php:93
0.1464 19070936 4. PHPUnit\TextUI\TestRunner->run(class PHPUnit\Framework\TestSuite, array(16), array(0), true) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/Command.php:124
0.1830 19110784 5. PHPUnit\TextUI\DefaultResultPrinter->printResult(class PHPUnit\Framework\TestResult) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/TestRunner.php:496
0.1838 19110808 6. PHPUnit\TextUI\DefaultResultPrinter->printSkipped(class PHPUnit\Framework\TestResult) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:158
0.1838 19110808 7. PHPUnit\TextUI\DefaultResultPrinter->printDefects(array(1), string(12)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:315
0.1841 19110808 8. PHPUnit\TextUI\DefaultResultPrinter->printDefect(class PHPUnit\Framework\TestFailure, long) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:272
0.1855 19110808 9. PHPUnit\TextUI\DefaultResultPrinter->printDefectTrace(class PHPUnit\Framework\TestFailure) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:279
0.1855 19110808 10. PHPUnit\Framework\SyntheticSkippedError->__toString() phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:288
0.1855 19110864 11. PHPUnit\Util\Filter::getFilteredStacktrace(class PHPUnit\Framework\SyntheticSkippedError) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Framework/Exception/Exception.php:58
0.1855 19112000 12. PHPUnit\Util\Filter::shouldPrintFrame(array(2), string(25), class PHPUnit\Util\ExcludeList) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/Filter.php:57
0.1856 19112128 13. PHPUnit\Util\Filter::fileIsExcluded(string(82), class PHPUnit\Util\ExcludeList) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/Filter.php:76
0.1856 19112128 14. PHPUnit\Util\ExcludeList->isExcluded(string(82)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/Filter.php:80
0.1856 19112128 15. PHPUnit\Util\ExcludeList->initialize() phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/ExcludeList.php:166
0.1856 19112128 16. class_exists(string(37)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/ExcludeList.php:182
0.1856 19112192 17. spl_autoload_call(string(37)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/ExcludeList.php:182
0.1856 19112256 18. autoload(string(37)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/ExcludeList.php:182
Warning: include(): Failed opening 'PHPUnit\Composer\Autoload\ClassLoader.php' for inclusion (include_path='.;C:\php\pear') in C:\Users\Administrator\PhpstormProjects\untitled\organizing\src\autoload.php on line 3
Call Stack:
0.0152 1571576 1. {main}() D:\phpstudy_pro\Extensions\php\php7.3.4nts\phpunit-9.5.8.phar:0
0.1412 18893584 2. PHPUnit\TextUI\Command::main(???) D:\phpstudy_pro\Extensions\php\php7.3.4nts\phpunit-9.5.8.phar:2249
0.1412 18893696 3. PHPUnit\TextUI\Command->run(array(3), true) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/Command.php:93
0.1464 19070936 4. PHPUnit\TextUI\TestRunner->run(class PHPUnit\Framework\TestSuite, array(16), array(0), true) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/Command.php:124
0.1830 19110784 5. PHPUnit\TextUI\DefaultResultPrinter->printResult(class PHPUnit\Framework\TestResult) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/TestRunner.php:496
0.1838 19110808 6. PHPUnit\TextUI\DefaultResultPrinter->printSkipped(class PHPUnit\Framework\TestResult) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:158
0.1838 19110808 7. PHPUnit\TextUI\DefaultResultPrinter->printDefects(array(1), string(12)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:315
0.1841 19110808 8. PHPUnit\TextUI\DefaultResultPrinter->printDefect(class PHPUnit\Framework\TestFailure, long) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:272
0.1855 19110808 9. PHPUnit\TextUI\DefaultResultPrinter->printDefectTrace(class PHPUnit\Framework\TestFailure) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:279
0.1855 19110808 10. PHPUnit\Framework\SyntheticSkippedError->__toString() phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/TextUI/DefaultResultPrinter.php:288
0.1855 19110864 11. PHPUnit\Util\Filter::getFilteredStacktrace(class PHPUnit\Framework\SyntheticSkippedError) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Framework/Exception/Exception.php:58
0.1855 19112000 12. PHPUnit\Util\Filter::shouldPrintFrame(array(2), string(25), class PHPUnit\Util\ExcludeList) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/Filter.php:57
0.1856 19112128 13. PHPUnit\Util\Filter::fileIsExcluded(string(82), class PHPUnit\Util\ExcludeList) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/Filter.php:76
0.1856 19112128 14. PHPUnit\Util\ExcludeList->isExcluded(string(82)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/Filter.php:80
0.1856 19112128 15. PHPUnit\Util\ExcludeList->initialize() phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/ExcludeList.php:166
0.1856 19112128 16. class_exists(string(37)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/ExcludeList.php:182
0.1856 19112192 17. spl_autoload_call(string(37)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/ExcludeList.php:182
0.1856 19112256 18. autoload(string(37)) phar://D:/phpstudy_pro/Extensions/php/php7.3.4nts/phpunit-9.5.8.phar/phpunit/Util/ExcludeList.php:182
PHP >= 7.4 is required.
C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\DatabaseTest.php:7
C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\DatabaseTest.php:7
OK, but incomplete, skipped, or risky tests!
Tests: 2, Assertions: 1, Skipped: 1.
那么这里很显然,总共有两个测试,这里跳过了其中一个测试,那么所以接下来用php7.4.3来跑这个测试:
C:\Users\Administrator\PhpstormProjects\untitled\organizing>D:\phpstudy_pro\Extensions\php\php7.4.3nts\php.exe D:\phpstudy_pro\Extensions\php\php7.3.4nts\phpunit-9.5.8.phar C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\DatabaseTest.php --verbose
PHPUnit 9.5.8 by Sebastian Bergmann and contributors.
Runtime: PHP 7.4.3
Configuration: C:\Users\Administrator\PhpstormProjects\untitled\organizing\phpunit.xml
.. 2 / 2 (100%)
Time: 00:00.007, Memory: 18.00 MB
OK (2 tests, 2 assertions)
可见php7.4.3大于php7.3,所以就不跳过任何测试了。
更多详情参考:
https://phpunit.readthedocs.io/zh_CN/latest/incomplete-and-skipped-tests.html
关键字词:phpunit,requires,跳过测试
相关文章
- phpunit跳过测试与markTestSkipped
- phpunit未完成的测试与markTestIncomplete重载
- phpunit未完成的测试与markTestIncomplete
- phpunit参数enforce-time-limit与enforceTimeLimit(2)
- phpunit参数enforce-time-limit与enforceTimeLimit
- phpunit测试执行期间产生的输出-被测试代码及beStrict
- phpunit无用测试的检查和关闭
- phpunit中testsuite配置的file模式
- phpunit中configuration免加载phpunit.xml
- phpunit参数testsuite的使用