Skip to content

Commit 0cc6b54

Browse files
committed
feat(devins-java): add support for retrieving module name #101
Add logic to retrieve the module name from the file and use it as a prefix for test commands. This ensures that the correct module is used during testing, improving accuracy and reliability.
1 parent 30d0015 commit 0cc6b54

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

java/src/main/kotlin/cc/unitmesh/idea/service/JavaAutoTestService.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.intellij.openapi.diagnostic.logger
1515
import com.intellij.openapi.fileEditor.FileDocumentManager
1616
import com.intellij.openapi.project.Project
1717
import com.intellij.openapi.project.guessProjectDir
18+
import com.intellij.openapi.roots.ProjectFileIndex
1819
import com.intellij.openapi.vfs.LocalFileSystem
1920
import com.intellij.openapi.vfs.VirtualFile
2021
import com.intellij.openapi.vfs.VirtualFileManager
@@ -41,12 +42,24 @@ class JavaAutoTestService : AutoTestService() {
4142

4243
val runManager = RunManager.getInstance(project)
4344

45+
var moduleName = ""
46+
val moduleForFile = ProjectFileIndex.getInstance(project).getModuleForFile(virtualFile)
47+
// a moduleForFile.name will be like <project>.<module>.<testModule>, so we need to remove the last part and first part
48+
if (moduleForFile != null) {
49+
val moduleNameSplit = moduleForFile.name.split(".").drop(1).dropLast(1).joinToString(":")
50+
if (moduleNameSplit.isNotEmpty()) {
51+
moduleName = "$moduleNameSplit:"
52+
}
53+
}
54+
4455
// todo: add maven ??
4556
val configuration = runManager.createConfiguration(name, GradleExternalTaskConfigurationType::class.java)
4657
val runConfiguration = configuration.configuration as GradleRunConfiguration
58+
runConfiguration.isRunAsTest = true
59+
runConfiguration.isDebugServerProcess = false
4760
runConfiguration.settings.externalProjectPath = project.guessProjectDir()?.path
4861
// todo: add module for test
49-
runConfiguration.rawCommandLine = "test --tests \"${canonicalName}\""
62+
runConfiguration.rawCommandLine = moduleName + "test --tests \"${canonicalName}\""
5063

5164
runManager.addConfiguration(configuration)
5265
runManager.selectedConfiguration = configuration

0 commit comments

Comments
 (0)