我正在使用 groovy 作为一种独立的脚本语言(而不是编译它)并且正在努力解决如何
使用 package
关键字构建多个文件,但仍然能够将它们 import
文件。这方面的一个例子如下:
目录结构:
+-- Project
+-- Example.groovy
+-- ExampleTest.groovy
使用当前设置,没有任何 package
关键字,我可以有以下内容:
// Example.groovy
class Example {
String message
def Example(input = "placeholder") {
this.message = input
}
}
//ExampleTest.groovy
import Example
class ExampleTest extends GroovyTestCase {
void testInitialiserWithoutArg() {
def object = new Example()
assertEquals(object.message, "placeholder")
}
void testInitialiserWithArg() {
def object = new Example("test")
assertEquals(object.message, "test")
}
}
有了这个,我可以在项目目录中添加一个脚本来使用示例类或运行测试
在命令行上使用 groovy ExampleTest.groovy
(groovy bin 在 PATH 中)。
然后我如何将 Example
类放入包中,以便脚本可以导入
示例类,我可以在命令行上运行单元测试吗?例如:
+-- Project
+-- some
| +-- random
| +-- main
| | +-- Example.groovy
| +-- test
| +-- ExampleTest.groovy
+-- UseExample.groovy
我将 package some.random
添加到 Example.groovy
和 ExampleTest.groovy
但即使
Example.groovy
和 ExampleTest.groovy
就在 /Project/some/random
目录中,我不能
似乎弄清楚了如何在 ExampleTest.groovy
中导入
Example
类来运行测试
命令行或如何在单独的脚本中导入整个 some.random
包,例如
UseExample.groovy
。
这是可能的还是我必须先编译包才能使用它?
最佳答案
你必须配置你的ide来启动/测试你的项目。如果你想用 bin/groovy
来做,那么这里有一个简单的命令行:
java.exe -classpath ".\embeddable\groovy-all-2.4.11.jar;.\my\test;.\my\main" groovy.ui.GroovyMain .\my\test\pack\Test.groovy
哪里:
.\embeddable\groovy-all-2.4.11.jar
groovy 库的路径
.\my\test
测试类/脚本的路径
.\my\main
主要类/脚本的路径
groovy.ui.GroovyMain
groovy 脚本启动器/加载器
.\my\test\pack\Test.groovy
将要执行的入口点脚本。 即使它在类路径中,您也必须指定完整路径或相对于当前目录路径。
文件结构:
- 我的
- 主要
- 打包
- A.groovy
- 打包
- 测试
- 打包
- 测试.groovy
- 打包
- 主要
A.groovy
package pack
public class A{
def f(p){
println p
}
}
测试.groovy
package pack
new A().f("hello")
关于groovy - 是否可以创建一个无需编译即可在脚本中使用的 Groovy 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44195979/