单元测试 – 如何从xml配置中的PHPUnit测试套件中排除文件?

前端之家收集整理的这篇文章主要介绍了单元测试 – 如何从xml配置中的PHPUnit测试套件中排除文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下,非常简单的XML配置为PHPUnit:
  1. <PHPunit bootstrap="/_tests/TestAutoload.PHP">
  2. <testsuites>
  3. <testsuite name="Unit Tests">
  4. <directory suffix=".PHP">_tests</directory>
  5. </testsuite>
  6. </testsuites>
  7. </PHPunit>

如何从测试套件中排除此目录中的某些文件?我试过< exclude>和< blacklist>,但是在这种情况下似乎不起作用。也找不到任何其他文件phpunit.de,没有提到任何关于它。否则,此配置工作完美。

有几种方法不能运行特定的测试 – 将其放入黑名单中,因此它永远不会运行可能不是这样 – 因为更改它意味着编辑黑名单,并且您经常会弹出并退出版本控制。

还有其他几种方法可能更合适:

如果测试尚未准备好运行:

  1. $this->markTestIncomplete('This test has not been implemented yet.');

如果有一个外部的理由不应该运行,请跳过它:

  1. if (!extension_loaded('MysqLi')) {
  2. $this->markTestSkipped('The MysqLi extension is not available.');
  3. }

您也可以将其放在setUp()函数中,因此它将跳过测试类中的所有测试。

您可以根据以前的测试取得测试:

  1. public function testEmpty()
  2. {
  3. $stack = array();
  4. $this->assertTrue(empty($stack));
  5. return $stack; // also sends this variable to any following tests - if this worked
  6. }
  7. /**
  8. * only runs if testEmpty() passed
  9. *
  10. * @depends testEmpty
  11. */
  12. public function testPush(array $stack)
  13. {
  14. }

@group -name-注解是专门停止或运行一组测试的最佳方式之一

  1. /**
  2. * @group database
  3. * @group remoteTasks
  4. */
  5. public function testSomething()
  6. {
  7. }

testSomething()现在分成两组,如果在命令行(或config.xml)中添加了–exclude-group参数。它不会运行。同样,您只能运行属于特定组的测试,例如以功能命名或错误报告。

猜你在找的XML相关文章