Skip to content

Commit

Permalink
feat(run-service): add support for specifying a test element when cre…
Browse files Browse the repository at this point in the history
…ating run configurations. This enhancement allows for more targeted and efficient execution of tests within the DevIns IDE. #100
  • Loading branch information
phodal committed Mar 27, 2024
1 parent 44b3859 commit 3375f8a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 13 deletions.
9 changes: 8 additions & 1 deletion src/main/kotlin/cc/unitmesh/devti/provider/RunService.kt
Expand Up @@ -49,7 +49,14 @@ interface RunService {
* @param virtualFile The virtual file for which the configuration should be created.
* @return The created or found run configuration settings, or `null` if no suitable configuration could be
*/
fun createRunSettings(project: Project, virtualFile: VirtualFile): RunnerAndConfigurationSettings? {
fun createRunSettings(project: Project, virtualFile: VirtualFile, testElement: PsiElement?): RunnerAndConfigurationSettings? {
if (testElement != null) {
val settings = createDefaultTestConfigurations(project, testElement)
if (settings != null) {
return settings
}
}

val runManager = RunManager.getInstance(project)
var testConfig = runManager.allConfigurationsList.firstOrNull {
val runConfigureClass = runConfigurationClass(project)
Expand Down
15 changes: 3 additions & 12 deletions src/main/kotlin/cc/unitmesh/devti/runner/RunServiceTask.kt
Expand Up @@ -4,7 +4,6 @@ package cc.unitmesh.devti.runner
import cc.unitmesh.devti.AutoDevBundle
import cc.unitmesh.devti.provider.RunService
import com.intellij.execution.*
import com.intellij.execution.actions.ConfigurationContext
import com.intellij.execution.executors.DefaultRunExecutor
import com.intellij.execution.impl.ExecutionManagerImpl
import com.intellij.execution.process.*
Expand Down Expand Up @@ -54,18 +53,10 @@ class RunServiceTask(
* @return The check result of the executed run configuration, or `null` if no run configuration could be created.
*/
fun doRun(indicator: ProgressIndicator?): RunnerResult? {
var settings: RunnerAndConfigurationSettings? = runService.createRunSettings(project, virtualFile)
val settings: RunnerAndConfigurationSettings? = runService.createRunSettings(project, virtualFile, testElement)
if (settings == null) {
if (testElement == null) {
logger<RunServiceTask>().error("No run configuration found for file: ${virtualFile.path}")
return null
}
settings = runService.createDefaultTestConfigurations(project, testElement)

if (settings == null) {
logger<RunServiceTask>().error("No run configuration found for element: $testElement")
return null
}
logger<RunServiceTask>().error("No run configuration found for file: ${virtualFile.path}")
return null
}

settings.isActivateToolWindowBeforeRun = false
Expand Down

0 comments on commit 3375f8a

Please sign in to comment.