11# Agent Context for S3Mock Test Support
22
3+ > Inherits all conventions from the [ root AGENTS.md] ( ../AGENTS.md ) . Below are module-specific additions only.
4+
35Test framework integrations for using S3Mock: JUnit 5, Testcontainers, TestNG.
46
57> ** Deprecation Notice (6.x):** The JUnit 5, TestNG, and all direct-integration modules will be
@@ -8,22 +10,16 @@ Test framework integrations for using S3Mock: JUnit 5, Testcontainers, TestNG.
810
911## Framework Selection
1012
11- - ** Testcontainers** (` testcontainers/ ` ) - Docker container isolation, works with any framework. ** Recommended.**
12- - ** JUnit 5** (` junit5/ ` ) - Extension with parameter injection. Will be removed in 6.x.
13- - ** TestNG** (` testng/ ` ) - Listener-based integration. Will be removed in 6.x.
14- - ** Common** (` common/ ` ) - Shared ` S3MockStarter ` base class and utilities.
15-
16- > ** Note:** JUnit 4 support (` junit4/ ` ) was removed in 5.x.
13+ - ** Testcontainers** (` testcontainers/ ` ) — Docker container isolation, works with any framework. ** Recommended.**
14+ - ** JUnit 5** (` junit5/ ` ) — Extension with parameter injection. Will be removed in 6.x.
15+ - ** TestNG** (` testng/ ` ) — Listener-based integration. Will be removed in 6.x.
16+ - ** Common** (` common/ ` ) — Shared ` S3MockStarter ` base class and utilities.
1717
18- ## DO / DON'T
18+ ## Module-Specific Rules
1919
20- ### DO
2120- Prefer ** Testcontainers** for new test setups — it provides the best isolation
2221- Keep framework modules ** thin** — delegate to ` common/ ` for shared logic
2322- Maintain backward compatibility for existing public APIs
24-
25- ### DON'T
26- - DON'T add new features to ` junit4/ ` — it has been removed in 5.x
2723- DON'T invest heavily in ` junit5/ ` or ` testng/ ` — they will be removed in 6.x
2824- DON'T add framework-specific logic that belongs in ` common/ `
2925
@@ -74,16 +70,3 @@ val endpoint = System.getProperty("s3mock.httpEndpoint")
7470```
7571
7672Parameters: ` s3mock.httpPort ` (9090), ` s3mock.httpsPort ` (9191), ` s3mock.initialBuckets ` , ` s3mock.root ` .
77-
78- ## Design Principles
79-
80- 1 . Framework-agnostic core in ` common ` module
81- 2 . Simple API with sensible defaults
82- 3 . Proper lifecycle management (start before tests, stop after)
83- 4 . Resource cleanup after tests
84-
85- ## Common Issues
86-
87- - ** Not starting** : Check ports 9090/9191 availability, Docker running (Testcontainers)
88- - ** Connection refused** : Verify S3Mock started, correct endpoint URL
89- - ** Test interference** : Use unique bucket names (UUID), ensure test isolation
0 commit comments