DEV Community

Dimitrios Desyllas
Dimitrios Desyllas

Posted on

1

How to run a phpunit unit test with a specific dataset

Today I was running my tests and had a failing test:

Tests\Common\BusinessLogic\XXX\XXLogicTest::testInvalidXX with data set #9 ([['dsadsa', 'dsafsdfsd', 1234.23, -1234.23, '', 'dsadsa']]) Failed asserting that 1 matches expected 0.

/var/www/html/tests/Common/BusinessLogic/Asfalistiko/FormSectionELogicTest.php:102 /var/www/html/tests/Common/BusinessLogic/XXX/XXLogicTest.php:301
Enter fullscreen mode Exit fullscreen mode

I tried to debug the issue, but I had a lot of data in my dataset. The failing case was only with a specific dataset and I needed to run the failing test testInvalidXX with only the soecific one (dataset #9).

In order to do this I've launched the phpunit like this:

./vendor/bin/phpunit ./tests/Common/BusinessLogic/XXX/XXLogicTest.php --filter="testInvalidXX#9"
Enter fullscreen mode Exit fullscreen mode

In the command above, pay attention to the --filter value provided. The filter value is:

testInvalidXX#9
Enter fullscreen mode Exit fullscreen mode

The filter value is consisted of 2 parts:

  1. The test name testInvalidXX
  2. The dataset index #9

By using this filter, PHPUnit will only run the specified test case with the dataset index #9, allowing you to focus on debugging the specific failure.


This tutorial should help you run a specific test with a particular dataset index using PHPUnit.

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up