单元测试 – 如何从xml配置中的PHPUnit测试套件中排除文件?
发布时间:2020-12-16 08:03:36 所属栏目:百科 来源:网络整理
导读:我有以下,非常简单的XML配置为PHPUnit: phpunit bootstrap="/_tests/TestAutoload.php" testsuites testsuite name="Unit Tests" directory suffix=".php"_tests/directory /testsuite /testsuites/phpunit 如何从测试套件中排除此目录中的某些文件?我试
我有以下,非常简单的XML配置为PHPUnit:
<phpunit bootstrap="/_tests/TestAutoload.php"> <testsuites> <testsuite name="Unit Tests"> <directory suffix=".php">_tests</directory> </testsuite> </testsuites> </phpunit> 如何从测试套件中排除此目录中的某些文件?我试过< exclude>和< blacklist>,但是在这种情况下似乎不起作用。也找不到任何其他文件比phpunit.de,没有提到任何关于它。否则,此配置工作完美。
有几种方法不能运行特定的测试 – 将其放入黑名单中,因此它永远不会运行可能不是这样 – 因为更改它意味着编辑黑名单,并且您经常会弹出并退出版本控制。
还有其他几种方法可能更合适: 如果测试尚未准备好运行: $this->markTestIncomplete('This test has not been implemented yet.'); 如果有一个外部的理由不应该运行,请跳过它: if (!extension_loaded('mysqli')) { $this->markTestSkipped('The MySQLi extension is not available.'); } 您也可以将其放在setUp()函数中,因此它将跳过测试类中的所有测试。 您可以根据以前的测试取得测试: public function testEmpty() { $stack = array(); $this->assertTrue(empty($stack)); return $stack; // also sends this variable to any following tests - if this worked } /** * only runs if testEmpty() passed * * @depends testEmpty */ public function testPush(array $stack) { } @group -name-注解是专门停止或运行一组测试的最佳方式之一 /** * @group database * @group remoteTasks */ public function testSomething() { } testSomething()现在分成两组,如果在命令行(或config.xml)中添加了–exclude-group参数。它不会运行。同样,您只能运行属于特定组的测试,例如以功能命名或错误报告。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |