-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[FrameworkBundle] ensureKernelShutdown in tearDownAfterClass #60564
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
base: 6.4
Are you sure you want to change the base?
[FrameworkBundle] ensureKernelShutdown in tearDownAfterClass #60564
Conversation
Hey! I see that this is your first PR. That is great! Welcome! Symfony has a contribution guide which I suggest you to read. In short:
Review the GitHub status checks of your pull request and try to solve the reported issues. If some tests are failing, try to see if they are failing because of this change. When two Symfony core team members approve this change, it will be merged and you will become an official Symfony contributor! I am going to sit back now and wait for the reviews. Cheers! Carsonbot |
ea858f6
to
feeac45
Compare
This relies on the child class calling the parent class. |
@nicolas-grekas I've added it in a new public method annotated with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it'd make more sense to me to add the annotation on the existing method.
My concern is about increasing the public API. People will start using the new method instead of the existing one in their test cases / IDEs will propose both, and people will wonder about that.
Also: I'm fine merging this as a bugfix, so 6.4 works for me.
Made the change to set the annotation directly in the |
674990e
to
8d81b0d
Compare
@nicolas-grekas looks like by changing the method to
Do you think it could be related to the test (actually the |
That failure is a false-positive so we can ignore it. |
@@ -120,8 +120,10 @@ protected static function createKernel(array $options = []): KernelInterface | |||
|
|||
/** | |||
* Shuts the kernel down if it was used in the test - called by the tearDown method by default. | |||
* | |||
* @afterClass |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should also have the attribute, to be compatible with PHPUnit 10+
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, I've added the attribute in addition of the annotation 👍
Is there any other change required?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@stof looks like the attribute is not available, Psalm fails but the tests pass... Is there anything I missed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the attribute is not available because Psalm runs with PHPUnit 9.x installed. But that's not an issue. We don't treat Psalm as a mandatory check, only as an helper tool (and each PR reports only new Psalm errors)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, thanks for the answer!
7b1d5ad
to
bf9786c
Compare
This PR performs the following change: In
KernelTestCase
, the kernel is shut down after every test, as per thestatic::ensureKernelShutdown()
call in thetearDown
function. However, if one was to perform any extra code in theirtearDownAfterClass
and callgetContainer
, it would boot up a new kernel, which would then be left dangling. The main issue with that is that when the next Test class is executed, there would already be a booted kernel, so it could happen that it was pointing to dangling resources.By adding this call to
static::ensureKernelShutdown
in thetearDownAfterClass
, we can ensure that no dangling kernels are left even after the test class has finished.