Skip to content

Commit 6e4f078

Browse files
authored
Merge pull request #1161 from Stefterv/cli-tests
CLITest for testing CLI commands in Processing IDE
2 parents 38811c0 + 09a0cdd commit 6e4f078

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

app/test/processing/app/CLITest.kt

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package processing.app
2+
3+
import java.io.File
4+
import kotlin.test.Test
5+
6+
/*
7+
This class is used to test the CLI commands of the Processing IDE.
8+
It mostly exists to quickly run CLI commands without having to specify run configurations
9+
or to manually run it on the command line.
10+
11+
In IntelliJ IDEA, it should display runnable arrows next to each test method.
12+
Use this to quickly test the CLI commands.
13+
The output will be displayed in the console after `Running CLI with arguments: ...`.
14+
When developing on the CLI commands, feel free to add more test methods here.
15+
*/
16+
class CLITest {
17+
18+
@Test
19+
fun testLSP(){
20+
runCLIWithArguments("lsp")
21+
}
22+
23+
@Test
24+
fun testLegacyCLI(){
25+
runCLIWithArguments("cli --help")
26+
}
27+
28+
/*
29+
This function runs the CLI with the given arguments.
30+
*/
31+
fun runCLIWithArguments(args: String) {
32+
// TODO: Once Processing PDE correctly builds in IntelliJ IDEA switch over to using the code directly
33+
// To see if the PDE builds correctly can be tested by running the Processing.kt main function directly in IntelliJ IDEA
34+
// Set the JAVA_HOME environment variable to the JDK used by the IDE
35+
println("Running CLI with arguments: $args")
36+
val process = ProcessBuilder("./gradlew", "run", "--args=$args", "--quiet")
37+
.directory(File(System.getProperty("user.dir")).resolve("../../../"))
38+
.inheritIO()
39+
40+
process.environment().apply {
41+
put("JAVA_HOME", System.getProperty("java.home"))
42+
}
43+
44+
val result = process
45+
.start()
46+
.waitFor()
47+
println("Done running CLI with arguments: $args (Result: $result)")
48+
49+
}
50+
}

0 commit comments

Comments
 (0)