Подтвердить что ты не робот

Как выполнить выборку из нескольких тестовых случаев

Я хочу с легкостью выполнить несколько выбранных тестовых примеров из моего класса из нескольких тестовых примеров, используя модуль php.

Поскольку мои 1-2 тестовые примеры терпят неудачу из множества тестовых случаев, а также трудно найти полный набор тестов для этих двух, есть ли какой-либо метод без добавления комментариев другим или копирование этих двух методов в разных пакетах.

Спасибо всем заблаговременно

4b9b3361

Ответ 1

Вы можете запускать отдельные тестовые примеры или отдельные тестовые классы из ваших наборов с помощью - параметр фильтра cli:

--filter <pattern>        Filter which tests to run.

--filter запускает тесты, чье имя соответствует заданному шаблону. Шаблон может быть либо именем одного теста, либо регулярным выражением, которое соответствует нескольким именам тестов.

Пример

Возьмем следующий пример тестового класса BlaTest, содержащий тестовые примеры testSame и testElse в файле BlaTest.php:

// BlaTest.php
<?php

class BlaTest extends PHPUnit_Framework_TestCase {

    public function testSame() { $this->assertSame(1,1); }
    public function testElse() { $this->assertSame(1,1); }

}

Запуск всех тестовых примеров в BlaTest

Этот фильтр соответствует имени класса теста.

$ phpunit --filter BlaTest

Запуск одного тестового примера в BlaTest

Этот фильтр соответствует имени тестового примера, а затем указывает на запуск этого фильтра в файле BlaTest.php.

$ phpunit --filter testSame BlaTest.php

Ответ 2

--filter опция принимает регулярное выражение как его значение (я использую phpunit 3.7). Это позволяет вам указать тесты, которые будут исключены, используя утверждение, подобное следующему: --filter='/::((?!test(Else|Same))\w+)/'

Ответ 3

Если вы предпочитаете фильтровать по коду, вы можете пометить тест, который нужно пропустить в методе setUp() [1], проверив, какой тест должен запускаться с помощью $this- > getName(). Таким образом, эти тесты будут отображаться как пропущенные.

Пример:

class FooTest extends PHPUnit_Framework_TestCase {

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

  ...
}

[1] http://www.phpunit.de/manual/current/en/fixtures.html