Skip to content

Commit 3375f8a

Browse files
committed
feat(run-service): add support for specifying a test element when creating run configurations. This enhancement allows for more targeted and efficient execution of tests within the DevIns IDE. #100
1 parent 44b3859 commit 3375f8a

File tree

2 files changed

+11
-13
lines changed

2 files changed

+11
-13
lines changed

src/main/kotlin/cc/unitmesh/devti/provider/RunService.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,14 @@ interface RunService {
4949
* @param virtualFile The virtual file for which the configuration should be created.
5050
* @return The created or found run configuration settings, or `null` if no suitable configuration could be
5151
*/
52-
fun createRunSettings(project: Project, virtualFile: VirtualFile): RunnerAndConfigurationSettings? {
52+
fun createRunSettings(project: Project, virtualFile: VirtualFile, testElement: PsiElement?): RunnerAndConfigurationSettings? {
53+
if (testElement != null) {
54+
val settings = createDefaultTestConfigurations(project, testElement)
55+
if (settings != null) {
56+
return settings
57+
}
58+
}
59+
5360
val runManager = RunManager.getInstance(project)
5461
var testConfig = runManager.allConfigurationsList.firstOrNull {
5562
val runConfigureClass = runConfigurationClass(project)

src/main/kotlin/cc/unitmesh/devti/runner/RunServiceTask.kt

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ package cc.unitmesh.devti.runner
44
import cc.unitmesh.devti.AutoDevBundle
55
import cc.unitmesh.devti.provider.RunService
66
import com.intellij.execution.*
7-
import com.intellij.execution.actions.ConfigurationContext
87
import com.intellij.execution.executors.DefaultRunExecutor
98
import com.intellij.execution.impl.ExecutionManagerImpl
109
import com.intellij.execution.process.*
@@ -54,18 +53,10 @@ class RunServiceTask(
5453
* @return The check result of the executed run configuration, or `null` if no run configuration could be created.
5554
*/
5655
fun doRun(indicator: ProgressIndicator?): RunnerResult? {
57-
var settings: RunnerAndConfigurationSettings? = runService.createRunSettings(project, virtualFile)
56+
val settings: RunnerAndConfigurationSettings? = runService.createRunSettings(project, virtualFile, testElement)
5857
if (settings == null) {
59-
if (testElement == null) {
60-
logger<RunServiceTask>().error("No run configuration found for file: ${virtualFile.path}")
61-
return null
62-
}
63-
settings = runService.createDefaultTestConfigurations(project, testElement)
64-
65-
if (settings == null) {
66-
logger<RunServiceTask>().error("No run configuration found for element: $testElement")
67-
return null
68-
}
58+
logger<RunServiceTask>().error("No run configuration found for file: ${virtualFile.path}")
59+
return null
6960
}
7061

7162
settings.isActivateToolWindowBeforeRun = false

0 commit comments

Comments
 (0)