I ended up using SystemPropertiesInvariantRule to enforce the presence of cleanup in an @After method - I like the explicitness of that since, as you say I know what the property modification is that needs to be reset. Thanks again for the excellent tooling!
On Fri, Aug 10, 2018 at 7:51 AM Michael Sokolov <msoko...@gmail.com> wrote: > OK thanks for the tips -- I'm glad to know this exists. > > On Fri, Aug 10, 2018 at 2:03 AM Dawid Weiss <dawid.we...@gmail.com> wrote: > >> Erick already pointed you at the "cleanup" rule. This is fairly >> generic, but if you know >> the properties being modified you should still clean them up in @After or >> @AfterClass -- this is useful for other people to know that you're >> modifying >> them, if for nothing else. >> >> Randomized testing package has SystemPropertiesInvariantRule which >> will allow you to check if there's any property "leaking" from your >> test. Some properties have to be excluded because various (system and >> non-system) classes set them occasionally upon initialization. >> >> Dawid >> On Fri, Aug 10, 2018 at 2:13 AM Erick Erickson <erickerick...@gmail.com> >> wrote: >> > >> > See TestSolrXml.java for an example of: >> > >> > @Rule >> > public TestRule solrTestRules = RuleChain.outerRule(new >> > SystemPropertiesRestoreRule()); >> > >> > Best, >> > Erick >> > >> > On Thu, Aug 9, 2018 at 2:33 PM, Michael Sokolov <msoko...@gmail.com> >> wrote: >> > > I ran into a need to test some functionality that relies on system >> > > properties. Writing the test was error-prone because the properties >> persist >> > > across the jvm so if you set them in a test they leak across to other >> tests >> > > unless you are careful about @After methods. It occurred to me it >> would be >> > > nice if LuceneTestCase would detect this and yell. It could save all >> the >> > > system properties before each test (or at least each test class) and >> see if >> > > they are restored at the end. I don't know if this arises much in >> Lucene, >> > > but maybe in Solr? >> > > >> > > -Mike >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >> > For additional commands, e-mail: java-user-h...@lucene.apache.org >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >> For additional commands, e-mail: java-user-h...@lucene.apache.org >> >>