Php 如何从多个测试用例中选择测试用例

Php 如何从多个测试用例中选择测试用例,php,phpunit,selenium-rc,Php,Phpunit,Selenium Rc,我想使用php单元轻松地从我的多个测试用例类中执行几个选定的测试用例 由于我的1-2个测试用例在一堆测试用例中失败,并且发现很难再次为这两个测试用例执行整个测试套件,因此有没有任何方法不向其他测试用例添加注释或在不同的测试套件中复制这两个方法 多亏了all-Prevance,您可以使用以下工具从套件中运行单个测试用例或单个测试类: 运行BlaTest中的所有测试用例 此筛选器与测试类名匹配 $ phpunit --filter BlaTest 在BlaTest 此筛选器与测试用例名称匹配,然后

我想使用php单元轻松地从我的多个测试用例类中执行几个选定的测试用例

由于我的1-2个测试用例在一堆测试用例中失败,并且发现很难再次为这两个测试用例执行整个测试套件,因此有没有任何方法不向其他测试用例添加注释或在不同的测试套件中复制这两个方法


多亏了all-Prevance

,您可以使用以下工具从套件中运行单个测试用例或单个测试类:

运行
BlaTest中的所有测试用例
此筛选器与测试类名匹配

$ phpunit --filter BlaTest
BlaTest
此筛选器与测试用例名称匹配,然后指示跨文件BlaTest.php运行此筛选器

$ phpunit --filter testSame BlaTest.php

如果您喜欢按代码进行筛选,可以通过使用$this->getName()检查将要运行的测试,在setUp()-方法[1]中标记要跳过的测试。这样,这些测试将显示为被跳过

例如:

class FooTest extends PHPUnit_Framework_TestCase {

  public function setUp() {
    if( 'testIwantToSkip' === $this->getName() ) {
      $this->markTestSkipped( 'Test skipped!' );
    }
  }

  ...
}
[1]
--filter
选项接受正则表达式作为其值(我使用的是phpunit3.7)。这使您可以使用如下断言指定将被排除的测试:
--filter='/:((?!test(Else | Same))\w+/“

它根据测试用例名称或组命名注释执行筛选。请让我知道,谢谢everything@Mike在testCase(或testClass)上命名为afaik。对于组注释,有
--groupmygroup
您提供了一个很好的解决方案,它在我这边工作得很好,谢谢!但是我有一个套件,它调用多个套件和许多函数来记录、报告和执行,如果我尝试相同的“组或过滤器”模式,它将执行所有测试用例。对此有何想法
$ phpunit --filter testSame BlaTest.php
class FooTest extends PHPUnit_Framework_TestCase {

  public function setUp() {
    if( 'testIwantToSkip' === $this->getName() ) {
      $this->markTestSkipped( 'Test skipped!' );
    }
  }

  ...
}