Hi Simon, > On 1 Aug 2019, at 10:43, Simon Urli <simon.u...@xwiki.com> wrote: > > Hi Vincent, > > On 01/08/2019 10:35, Vincent Massol wrote: >> Hi devs, >> I was pretty sure that this was discussed before but I can’t find it so I’m >> posting it again since I noticed that we continue to have tests (and even >> add new ones) that use the OS tmp directory to output test data. >> Tests must not generate anything outside of the target/ directory as this >> will cause several problems: >> * not clean generated test data after the test >> * create a state that can make other tests fail >> * generate errors in jenkins since jenkins monitors created files and >> doesn't allow to remove files outside of the worskspace >> WDYT? >> If ok I’ll add it to >> https://dev.xwiki.org/xwiki/bin/view/Community/Testing/JavaUnitTesting/#HBestpractices > > I agree on the principle, but before adding it we need a utility method to > know where to put those resources: I guess it would return a relative path to > the target directory of the current module, but we need this method to avoid > having to rely on explicit paths in our tests.
Yes, I agree. I can write a junit5 extension similar to https://junit.org/junit5/docs/current/user-guide/#writing-tests-built-in-extensions-TempDirectory (this one will use the system tmp dir). > It might also allow us to clean automatically those paths in a tearDown > method if we want. I wouldn’t do this. It’s important to leave the tmp dir present and not touch target/ , fro debugging purposes. In any case target lifecycle is already taken care of when we do a mvn clean. Thanks -Vincent > > Simon >> Thanks >> -Vincent >> PS: Ideally we should have a automatic verification in the build but it >> doesn’t seem easy to implement, so right now, I’m only proposing it as a >> best practice. > > -- > Simon Urli > Software Engineer at XWiki SAS > simon.u...@xwiki.com > More about us at http://www.xwiki.com