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.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay