shipmonk/phpstan-dev

Development utilities for PHPStan rules testing, extracted from shipmonk/phpstan-rules

Package info

github.com/shipmonk-rnd/phpstan-dev

pkg:composer/shipmonk/phpstan-dev

Statistics

Installs: 51 225

Dependents: 4

Suggesters: 0

Stars: 7

Open Issues: 2

0.1.6 2026-01-29 15:37 UTC

Requires

Suggests

Provides

None

Conflicts

None

Replaces

None

MIT a8c16883ac3762783cac0496dc069024fa9e77aa

testingstatic analysisPHPStan

This package is auto-updated.

Last update: 2026-06-10 16:33:40 UTC


README

Inplace fixture asserts and autofix for PHPStan rules. No more manual line adjustments in tests when new code is added to rule fixtures.

Installation

composer require --dev shipmonk/phpstan-dev

Usage

<?php declare(strict_types = 1);

use PHPStan\Rules\Rule;

/**
 * @extends RuleTestCase<YourRule>
 */
class YourRuleTest extends \ShipMonk\PHPStanDev\RuleTestCase
{
 public function testRule(): void
 {
 $this->analyzeFiles([__DIR__ . '/Data/code.php']);
 }
}

Create test fixture at code.php:

<?php

$valid = 'This is valid code';
$invalid = something(); // error: Rule error message

Key Features

In-fixture error asserts of via // error:

Mark expected errors directly in test files via PHP comments:

<?php

$validCode = 'No error expected here';
$invalidCode = forbidden(); // error: Rule error message
$alsoInvalid = another(); // error: Rule error message // error: Same-line multi errors

Autofix

Automatically generate inplace error comments during development:

public function testRule(): void
{
 $this->analyzeFiles([...], autofix: true);
}

⚠️ Important: Remove autofix: true before committing - tests will fail if autofix is enabled.

Contributing

  • Check your code by composer check
  • Autofix coding-style by composer fix:cs
  • All functionality must be tested

License

MIT