Skip to content

[PhpUnitBridge] Add weak-verbose mode and match against message instead of test name #16789

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 5, 2015

Conversation

nicolas-grekas
Copy link
Member

Q A
Bug fix? yes
New feature? no
BC breaks? no
Deprecations? no
Tests pass? yes
Fixed tickets #14475
License MIT
Doc PR -

This is double a DX bug fix:

  • the weak-verbose allows showing messages but exit with 0 (see [PhpunitBridge] Add a mode to show messages but exit with 0 #14475)
  • matching against $class::$method was a mistake of mine: you can already --filter in phpunit to get by-test filtering but you can't select which message should be traced without this change. I stumbled upon this limitation while doing a Symfony 3 migration workshop...

suite once a deprecation is triggered by the `MyTest::testMethod` test.
In case you need to inspect the stack trace of a particular deprecation triggered
by your unit tests, you can set the `SYMFONY_DEPRECATIONS_HELPER` env var to a
regexp that matches this depreaction's message. For example,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: depreaction's -> deprecation's

@nicolas-grekas
Copy link
Member Author

typos fixed, thanks

@@ -64,7 +64,7 @@ public static function register($mode = false)
$group = 'remaining';
}

if (isset($mode[0]) && '/' === $mode[0] && preg_match($mode, $class.'::'.$method)) {
if (isset($mode[0]) && '/' === $mode[0] && preg_match($mode, $msg)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand why this preg_match is there. Is it an undocumented feature of the helper ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah no, it is documented

@craue
Copy link
Contributor

craue commented Dec 2, 2015

👍

1 similar comment
@stof
Copy link
Member

stof commented Dec 5, 2015

👍

@@ -144,7 +144,7 @@ public static function register($mode = false)
if (!empty($notices)) {
echo "\n";
}
if ('weak' !== $mode && ($deprecations['unsilenced'] || $deprecations['remaining'] || $deprecations['other'])) {
if ('weak' !== $mode && 'weak-verbose' !== $mode && ($deprecations['unsilenced'] || $deprecations['remaining'] || $deprecations['other'])) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should add those strings as constants esp. since $mode is part of the public api

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consts added

@fabpot
Copy link
Member

fabpot commented Dec 5, 2015

👍

@stof
Copy link
Member

stof commented Dec 5, 2015

Thank you @nicolas-grekas.

@stof stof merged commit a670ff1 into symfony:2.8 Dec 5, 2015
stof added a commit that referenced this pull request Dec 5, 2015
…t message instead of test name (nicolas-grekas)

This PR was merged into the 2.8 branch.

Discussion
----------

[PhpUnitBridge] Add weak-verbose mode and match against message instead of test name

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #14475
| License       | MIT
| Doc PR        | -

This is double a DX bug fix:
- the weak-verbose allows showing messages but exit with 0 (see #14475)
- matching against $class::$method was a mistake of mine: you can already `--filter` in phpunit to get by-test filtering but you can't select which message should be traced without this change. I stumbled upon this limitation while doing a Symfony 3 migration workshop...

Commits
-------

a670ff1 [PhpUnitBridge] Add weak-verbose mode and match against message instead of test name
@nicolas-grekas nicolas-grekas deleted the fix-phpunit-bridge branch December 7, 2015 09:04
nicolas-grekas added a commit that referenced this pull request Dec 11, 2015
…s upper bound" mode (nicolas-grekas)

This PR was merged into the 2.8 branch.

Discussion
----------

[PhpUnitBridge] Replace "weak-verbose" by "deprecations upper bound" mode

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #16789, #14475
| License       | MIT
| Doc PR        | -

This is a "new feature" that replaces a "new feature" not yet released but merged into 2.8.1. See #16789.
It is way more flexible to be able to specify the upper bound of remaining deprecation notices that you allow in your test suite. This allows lowering this number while deprecations are removed, step after step.

ping @wouterj @Tobion @craue @fabpot @stof

Commits
-------

58cd3ee [PhpUnitBridge] Replace "weak-verbose" by "deprecations upper bound" mode
This was referenced Dec 26, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants