Marc Philipp's Avatar

Marc Philipp

@marcphilipp.de

Software engineer and @junit.org team lead, Java Champion and open source enthusiast, father, husband & family person (he/him) Website: https://marcphilipp.de Mastodon: https://chaos.social/@marcphilipp

153
Followers
98
Following
26
Posts
11.11.2024
Joined
Posts Following

Latest posts by Marc Philipp @marcphilipp.de

Today's the day! Happy to share what I've been working on with Benedikt and Jendrik. Let us know if you are interested in participating in the private beta or have any questions! #TestLens

04.02.2026 14:35 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Voucher redemption :: JCON EUROPE 2026

Meet the #JUnit team in Cologne, Germany, in April at #JCON!

@marcphilipp.de will give a talk about the road to JUnit 6 and Christian and Rien will be attending as well.

Please use the following link to support JUnit (10% of the proceeds will go back to the project):
pretix.eu/impuls/europ...

02.02.2026 18:09 πŸ‘ 9 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0
Preview
STF Milestone 10: Documentation improvements β€’ Marc Philipp Personal website

✨️ New blog post: "STF Milestone 10: Documentation improvements"

Modernizing @junit.org's documentation by adopting @antora.org and hosting on statichost.eu

πŸ‘‰οΈ marcphilipp.de/blog/2026/01...

Thanks to the @sovereign.tech fund for their support!

25.01.2026 17:33 πŸ‘ 5 πŸ” 3 πŸ’¬ 0 πŸ“Œ 1
Preview
STF Milestone 8: Improved parallel test execution β€’ Marc Philipp Personal website

✨ New blog post: "STF Milestone 8: Improved parallel test execution"

Parallel execution support for the Vintage engine, resource lock improvements, and a new #JUnit Platform implementation of parallel execution

πŸ‘‰ marcphilipp.de/blog/2026/01...

Thanks to the @sovereign.tech Fund for their support!

18.01.2026 14:38 πŸ‘ 4 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Preview
STF Milestone 7: Safe cancellation β€’ Marc Philipp Personal website

✨ New blog post: "STF Milestone 7: Safe cancellation"

Introducing a safe way to cancel #JUnit test execution early, e.g. after the first test failed, but still execute all cleanup logic.

πŸ‘‰ marcphilipp.de/blog/2025/12...

Thanks to the @sovereign.tech Fund for their support!

28.12.2025 12:06 πŸ‘ 5 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Thanks for the screenshot! Antora uses a different default stylesheet than plain Asciidoctor. Personally, I think it looks more modern and I like it better. At the end of the day, it probably comes down to a matter of preference.

22.12.2025 12:30 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Do you have a concrete example where you find the HTML version hard to read? Apart from the font we use the default styles for both versions.

22.12.2025 09:08 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Support JUnit JUnit is maintained by a team of passionate volunteers. This is your chance to give back and support the project!

JUnit is undoubtedly one of the most important projects in the #Java ecosystem. And it's 100% free and open!

Let me be frank: If we can't get THIS project to the point where a single maintainer can focus on it, then what does that say about our commitment to Free & Open Source Software?

1/3 ⏩

26.11.2025 11:27 πŸ‘ 69 πŸ” 47 πŸ’¬ 1 πŸ“Œ 3
Preview
Inside the breach that broke the internet: The untold story of Log4Shell Log4Shell proved that open source security isn't guaranteed and isn’t just a code problem.

As a fellow maintainer of an open source project, this is an intense and somewhat scary read. Thanks to @grobmeier.de for being so open to talk about what he experienced and @github.com for initiating their Secure Open Source Fund!

github.blog/open-source/...

21.10.2025 05:11 πŸ‘ 12 πŸ” 6 πŸ’¬ 0 πŸ“Œ 0

πŸ“’ Jimfs JUnit Jupiter 1.0.0 is also released!

✨ Java 17 baseline
⬆️ Upgrade to JUnit 6
πŸ“– Brand new user guide

πŸ§‘β€πŸ’» Any feedback is welcome!

github.com/scordio/jimf...

01.10.2025 20:12 πŸ‘ 12 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0

Iβ€˜m really happy that the #JUnit 6.0 went out today. Thanks to the team for making it happen!

30.09.2025 09:22 πŸ‘ 19 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0
object ImprovedKotlinSupportTests {

    val data = sequenceOf( // Sequence<T> support
        arguments(1, Month.JANUARY),
        arguments(12, Month.DECEMBER)
    )

    @ParameterizedTest
    @FieldSource("data")
    // suspending function support for coroutine testing
    suspend fun test(value: Int, month: Month?) {
        assertNotNull(month) // contracts to support...
        assertEquals(value, month.value) // smart casts!
    }
}

object ImprovedKotlinSupportTests { val data = sequenceOf( // Sequence<T> support arguments(1, Month.JANUARY), arguments(12, Month.DECEMBER) ) @ParameterizedTest @FieldSource("data") // suspending function support for coroutine testing suspend fun test(value: Int, month: Month?) { assertNotNull(month) // contracts to support... assertEquals(value, month.value) // smart casts! } }

✨ New blog post: "STF Milestone 6: Improved Kotlin support"

#JUnit 6.0.0-RC1 improves JUnit's #Kotlin story by adding support for suspending functions, sequences, contracts and nullness annotations.

πŸ‘‰ marcphilipp.de/blog/2025/08...

Thanks to the @sovereign.tech fund for their support!

21.08.2025 10:38 πŸ‘ 7 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0

NOW is the time to try out #JUnit 6 before it goes GA! 😎

So, please try out 6.0 RC1, and let us know if you run into any issues.

Happy Testing! βœ…

20.08.2025 09:03 πŸ‘ 12 πŸ” 6 πŸ’¬ 2 πŸ“Œ 0
Video thumbnail

What’s next for JUnit?
See @marcphilipp.de’s session from #IntelliJIDEAConf for updates on versions 5.12, 5.13, and the upcoming 6.0 preview πŸ‘‰ youtu.be/-cY5BJaHz6E

18.08.2025 12:06 πŸ‘ 13 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0
@Test // Java
int test() {
    return 42;
} // Not executed!!! 😱😱😱

@Test // Java int test() { return 42; } // Not executed!!! 😱😱😱

✨ New blog post: "STF Milestone 5: Discovery issues"

Ever written a test that wasn't being executed? 😱

#JUnit 5.13 introduced a mechanism for reporting such issues found during test discovery.

πŸ‘‰ marcphilipp.de/blog/2025/08...

Thanks to the @sovereign.tech fund for their support!

16.08.2025 15:31 πŸ‘ 14 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0
JUnit Release Notes

#JUnit 6.0.0-M2 is ready for testing!

πŸ“° Everything in 6.0.0-M1
πŸ›‘ Support for cancelling test execution
⏭️ New `--fail-fast` mode for ConsoleLauncher
🦺 Null-safe `computeIfAbsent` methods for stores
🧐 Strict evaluation of enum-based configuration parameters

junit.org/junit5/docs/...

22.07.2025 09:00 πŸ‘ 7 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

If you ever need to adapt a #JUnit3 TestSuite to run directly in #JUnit #Jupiter, it's actually possible with dynamic tests! 😎

Here's how I run the @⁠Inject TCK in the @SpringFramework.

github.com/spring-proje...

Kudos to @marcphilipp.de for suggesting the dynamic test idea.

29.06.2025 14:12 πŸ‘ 6 πŸ” 3 πŸ’¬ 0 πŸ“Œ 1
Post image Post image Post image Post image

#JUnit Logo Contest Update

Here are some of the top contenders.

Please let us know your thoughts.

And additional proposals are welcome!

github.com/junit-team/j...

27.06.2025 13:02 πŸ‘ 8 πŸ” 5 πŸ’¬ 1 πŸ“Œ 0

Kudos to @marcphilipp.de for becoming a #Java Champion‬! πŸ‘
Take advantage of free access to @JetBrains IDEs by joining our Developer Recognition Program: www.jetbrains.com/shop/eform/d...

25.06.2025 10:10 πŸ‘ 15 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

@sormuras.bsky.social Thanks for adding me!

23.06.2025 16:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

Thank you! 😊

23.06.2025 16:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

We really need a new #JUnit logo! 🀣

Proposals are welcome!

github.com/junit-team/j...

20.06.2025 18:10 πŸ‘ 16 πŸ” 7 πŸ’¬ 2 πŸ“Œ 0

We did indeed! πŸ˜…

07.06.2025 12:43 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
@ParameterizedClass
@ValueSource(strings = {"foo", "bar"})
class SomeTests {
    @Parameter String value;
    
    @Test
    void shouldNotBeNull() {
        assertNotNull(value);
    }
    @Test
    void lengthShouldBeThree() {
        assertEquals(3, value.length());
    }
}

@ParameterizedClass @ValueSource(strings = {"foo", "bar"}) class SomeTests { @Parameter String value; @Test void shouldNotBeNull() { assertNotNull(value); } @Test void lengthShouldBeThree() { assertEquals(3, value.length()); } }

✨ New blog post: "STF Milestone 4: Parameterized test classes"

JUnit 5.13 introduced parameterized test classes (in addition to methods). They are a powerful testing tool that has long been missing from JUnit Jupiter...

πŸ‘‰ marcphilipp.de/blog/2025/06...

07.06.2025 11:52 πŸ‘ 31 πŸ” 11 πŸ’¬ 0 πŸ“Œ 0

Glad you liked it! πŸ™‚

07.06.2025 10:15 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
JUnit 5 Release Notes

#JUnit 5.13.1 is released!

🐞 Fix regressions introduced in 5.13.0

junit.org/junit5/docs/...

07.06.2025 08:25 πŸ‘ 26 πŸ” 8 πŸ’¬ 1 πŸ“Œ 0
Preview
Talks β€’ Marc Philipp Personal website

The slides and code examples for my talk about #JUnit at #IntelliJIDEAConf are now available on marcphilipp.de/en/talks/

04.06.2025 14:05 πŸ‘ 16 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0
Preview
IntelliJ IDEA Conf 2025. Day 2 On June 3–4, 2025, JetBrains is hosting a free virtual event – IntelliJ IDEA Conf.IntelliJ IDEA Conf is a celebration of the developer community, bringing to...

Coming up soon at #IntelliJIDEAConf: @marcphilipp.de from the JUnit team walks you through the latest in JUnit 5.12 and 5.13, and what’s coming in 6.0.
Better reports, better tests, and new ways to structure them. Don’t miss it!
Watch here: youtube.com/live/qg6tj8T...

04.06.2025 11:31 πŸ‘ 8 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0
JUnit 5 Release Notes

#JUnit 5.13.0 is released!

πŸͺ„ ClassTemplate and ParameterizedClass support
⚠️ Discovery issue reporting for test engines
♻️ Resource management for launcher sessions and execution requests
πŸ” Test discovery support in EngineTestKit
πŸ‘Ύ ConsoleLauncher improvements

junit.org/junit5/docs/...

30.05.2025 11:38 πŸ‘ 26 πŸ” 10 πŸ’¬ 1 πŸ“Œ 2

There's also getPlain() for "plain read access" to make it symmetric.

30.05.2025 08:58 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0