У меня проблема при использовании командной строки для запуска тестов: если я бегу PHPUnit так:Не удается запустить одного теста с поставщиком данных в PHPUnit
phpunit -–no-configuration -–filter testAdd DataTest DataProviderTest.php
он работает отлично. Но мы используем регулярное выражение точно указать имя метода, который мы хотим быть проверены:
phpunit -–no-configuration -–filter /::testAdd$/ DataTest DataProviderTest.php
Второй подход не работает, к сожалению. Исходный код:
<?php
class DataTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider provider
*/
public function testAdd($a, $b, $c)
{
$this->assertEquals($c, $a + $b);
}
public function provider()
{
return array(
array(0, 0, 0),
array(0, 1, 1),
array(1, 0, 1),
array(1, 1, 3)
);
}
}
?>
Хороший пример! Обратите внимание, что номер набора данных также может строка (с именем dataproviders с использованием ключей массива в наборах данных), так что \ d + может не поймать все, но 'phpunit --filter '/ :: test. + (с dat набор #. +)?$/"или что-то очень классное средство для запуска всех тестов с поставщиками данных;) – edorian
@edorian - Хороший вызов. Я изменил его на'. * ', чтобы поймать любой набор данных. –
Я думаю, что новый синтаксис для' -filter' всегда проще https://phpunit.de/manual/current/en/textui.html#textui.examples.filter-patterns – martin