Integrated: 7903965: Fix Launching Tests from Context Menu

Oleksii Sylichenko duke at openjdk.org
Wed Mar 12 14:28:14 UTC 2025


On Wed, 5 Mar 2025 17:28:47 GMT, Oleksii Sylichenko <duke at openjdk.org> wrote:

> Currently, there is an issue with running TestNG/JUnit tests when using the context menu on the editor tab. TestNG/JUnit intercepts the test execution from JTReg.
> 
> After fixing this issue, I decided to extend the fix to cover all potential use cases of the context menu.
> 
> As part of this pull request, I propose enhancing the process of running tests via the context menu. The context menu can be used in the following cases:
> 
> - Editor tab
> - File in the project tree
> - Directory in the project tree
> - Any location within a file
> 
> The current changes automatically determine what needs to be executed:
> 
> - Directory
> - File
> - Method
> 
> Additionally, the issue with intercepting test execution through Application, TestNG, and JUnit configurations when using the context menu on the editor tab has been fixed.
> 
> # Summary
> 
> - Ensure that run configuration priority is no longer lost to Application, TestNG, or JUnit setups when launching via the context menu.  
> - Fix run configuration created via the context menu: find and launch the proper test element, depending on the current PSI element.  
> - Improve the logic for comparing existing run configurations with newly generated ones.  
> - Add JUnit plugin in the dependencies.
> 
> # Detailed changes
> 
> ## Add JUnit plugin into dependencies
> - build.gradle
> - plugin.xml
> 
> ## Removed files
> Merge the code of the directory and file config producers into a parent config producer.
> - JTRegClassConfigurationProducer.java
> - JTRegDirectoryConfigurationProducer.java
> 
> ## JTRegConfigurationProducer.java
> - Refactor `setupConfigurationFromContext`:
>   - Move the check for whether a file can be run to `JTRegUtils#isRunnableByJTReg`.  
>   - Allow this method to create configurations for directories as well.  
>   - Implement `preventRunPriorityLoss` to prevent priority takeover by other run configuration types (Application, TestNG, JUnit) under certain conditions.  
>   - Replace the use of the current PSI element for generating names and querying run configurations with the specific element intended for execution.  
> - Implement `preventRunPriorityLoss`.
> - Add Javadoc for `nameForElement`.
> - Fix logic in `isConfigurationFromContext` for checking if two configurations are identical:
>   - Replace the use of the current PSI element for queries with the exact element intended for execution.  
> - Compare string-typed configuration parameters using a "not-nullify" approach (`null == ""`).
> - Implement `findExactRunElement` to locate the specific PSI element for execution a...

This pull request has now been integrated.

Changeset: 9e3e2303
Author:    Oleksii Sylichenko <a.silichenko at gmail.com>
Committer: Jorn Vernee <jvernee at openjdk.org>
URL:       https://git.openjdk.org/jtreg/commit/9e3e2303f98cc329db2c7bc4d13df741010a4391
Stats:     423 lines in 6 files changed: 227 ins; 165 del; 31 mod

7903965: Fix Launching Tests from Context Menu

Reviewed-by: jvernee, cstein

-------------

PR: https://git.openjdk.org/jtreg/pull/252


More information about the jtreg-dev mailing list