RFR: 7903300: Add test library support to jtreg plugin
Maurizio Cimadamore
mcimadamore at openjdk.org
Thu Sep 15 13:43:07 UTC 2022
On Sun, 11 Sep 2022 13:06:20 GMT, Guoxiong Li <gli at openjdk.org> wrote:
> Hi all,
>
> Currently, when we open a jtreg test file which uses the JUnit or TestNG, the plugin can't identify the related classes of the JUnit or TestNG. So the statement such as `import org.junit.Test` is marked as red with error message `Cannot resolve symbol 'junit'`.
>
> This patch adds the jtreg libraries directory to the lib path of the `Jetbrains IDEA` when opening the JUnit or TestNG test files so that the `Jetbrains IDEA` can identify the related classes.
>
> Thanks for taking the time to review.
>
> Best Regards,
> -- Guoxiong
Note that there is a workaround for the problem mentioned in this PR (not that I think it wouldn't be nice to fix). The IDE will typically suggest to add relevant test libraries when clicking on the light-bulb fix icon beside a TestNG/JUnit import.
plugins/idea/src/main/java/com/oracle/plugin/jtreg/components/JTRegFileManagerListener.java line 149:
> 147: rootModel.addLibrary(library);
> 148: } else if (testInfo.jtregLib != null) {
> 149: rootModel.removeLibrary(testInfo.jtregLib);
I'm not sure this is logically correct. While I can understand adding jtreg/testng library to the model as soon as a new test file requiring it is opened, removing the library seems more problematic. In principle we should remove the testng/junit library from the model only if there's no open test that's a jtreg test. Which doesn't seem to be what's happening in the code.
-------------
PR: https://git.openjdk.org/jtreg/pull/117
More information about the jtreg-dev
mailing list