junit5 icon indicating copy to clipboard operation
junit5 copied to clipboard

Configuration Parameters Overview

Open scordio opened this issue 10 months ago • 7 comments

The user guide mentions several configuration parameters for the Jupiter Test Engine. However, they are a bit scattered throughout the chapters.

What do you think about adding an overview to the appendix, in the style of the Spring Boot Common Application Properties?

In addition to the user guide benefit, I would like to ask JetBrains if they are open to support code completion in junit-platform.properties files. Having such an overview in the docs might help with that request.

Related Issues

  • #2516

Deliverables

  • [ ] Add a configuration parameters overview to the user guide

scordio avatar Feb 21 '25 14:02 scordio

IMHO, It's very good idea 👍

YongGoose avatar Feb 22 '25 02:02 YongGoose

I second that!

Ideally, we should generate a machine-readable format from our code that can be used to generate the User Guide appendix and included in the JAR so IDEs don't have to hard-code the allowed keys.

@scordio Do you know how this is implemented in IntelliJ IDEA for Spring?

marcphilipp avatar Feb 25 '25 10:02 marcphilipp

FYI: this is a duplicate of

  • #2516

So, we should only keep one of the issues.

Normally we'd close the newer (duplicate) one, but we could also keep this issue since it has a bit more information.

sbrannen avatar Feb 25 '25 11:02 sbrannen

Ideally, we should generate a machine-readable format from our code that can be used to generate the User Guide appendix and included in the JAR so IDEs don't have to hard-code the allowed keys.

@scordio Do you know how this is implemented in IntelliJ IDEA for Spring?

Spring Boot has a specific metadata format (JSON file included in JAR) that IDEs read.

That gets auto-generated based on @ConfigurationProperties (see reference docs), but you can also manually create those JSON files.

They look something like this.

{"properties": [
	{
		"name": "my.messaging.addresses",
		"defaultValue": ["a", "b"]
	},
	{
		"name": "my.messaging.container-type",
		"defaultValue": "simple"
	}
]}

There is no such metadata format for configuration properties (Spring properties) supported directly by the Spring Framework, so I documented them manually here.


As a side note, the documentation for the Common Application Properties for Spring Boot that @scordio linked to is generated from those JSON files in JARs on the classpath for the Spring Boot build.

sbrannen avatar Feb 25 '25 12:02 sbrannen

Spring Boot has a specific metadata format (JSON file included in JAR) that IDEs read.

Someone in the Spring engineering team mentioned that they think IntelliJ IDEA originally read those JSON files but that IDEA now has its own built-in support for processing @ConfigurationProperties classes.

So, it's worth confirming with the IDEA team whether they even support those Spring Boot JSON files anymore.

sbrannen avatar Feb 26 '25 13:02 sbrannen

FYI: this is a duplicate of

Sorry, @sbrannen! I should have searched better...

@scordio Do you know how this is implemented in IntelliJ IDEA for Spring?

No, I'm not aware of the IDEA implementation. As @sbrannen mentioned, I would also suggest to get in touch with the IDEA team and understand if there is some sort of contract, not necessarily restricted to Spring Boot, that libraries and frameworks can leverage.

Would you like me to do it, or would you prefer a JUnit team member doing it?

scordio avatar Mar 01 '25 07:03 scordio

Would you like me to do it, or would you prefer a JUnit team member doing it?

Please go ahead or let me know whether I should take care of it. 👍

marcphilipp avatar Mar 01 '25 09:03 marcphilipp