@@ -71,6 +71,11 @@ public class PlexusExtension implements BeforeEachCallback, AfterEachCallback {
7171
7272 private static String basedir ;
7373
74+ /**
75+ * The base directory for the test instance
76+ */
77+ private String testBasedir ;
78+
7479 static {
7580 if (System .getProperty ("guice_custom_class_loading" , "" ).trim ().isEmpty ()) {
7681 System .setProperty ("guice_custom_class_loading" , "CHILD" );
@@ -79,7 +84,6 @@ public class PlexusExtension implements BeforeEachCallback, AfterEachCallback {
7984
8085 @ Override
8186 public void beforeEach (ExtensionContext context ) throws Exception {
82- basedir = getBasedir ();
8387
8488 setContext (context );
8589
@@ -102,7 +106,7 @@ protected void setupContainer() {
102106
103107 DefaultContext context = new DefaultContext ();
104108
105- context .put ("basedir" , getBasedir ());
109+ context .put ("basedir" , getTestBasedir ());
106110
107111 customizeContext (context );
108112
@@ -170,6 +174,29 @@ public void afterEach(ExtensionContext context) throws Exception {
170174 }
171175 }
172176
177+ /**
178+ * The base directory for the test instance. By default, this is the same as the basedir.
179+ *
180+ * @return the testBasedir
181+ * @since 1.7.0
182+ */
183+ protected String getTestBasedir () {
184+ if (testBasedir == null ) {
185+ testBasedir = getBasedir ();
186+ }
187+ return testBasedir ;
188+ }
189+
190+ /**
191+ * Set the base directory for the test instance. By default, this is the same as the basedir.
192+ *
193+ * @param testBasedir the testBasedir for the test instance
194+ * @since 1.7.0
195+ */
196+ protected void setTestBasedir (String testBasedir ) {
197+ this .testBasedir = testBasedir ;
198+ }
199+
173200 public PlexusContainer getContainer () {
174201 if (container == null ) {
175202 setupContainer ();
0 commit comments