微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么来自Groovy Grape的@Grab注释在脚本中起作用,但在单元测试类中却不起作用

如何解决为什么来自Groovy Grape的@Grab注释在脚本中起作用,但在单元测试类中却不起作用

我正在尝试在Groovy中编写CLI命令。我也在尝试采用TDD方法

我的第一个测试将仅仅是一个以成功代码退出的命令。我作弊了一点,首先在 ssbgt.groovy

中创建了命令
@Grab('info.picocli:picocli-groovy:4.5.1')
@picocli.groovy.PicocliScript
import static picocli.CommandLine.*
import groovy.transform.Field

@Option(names= ["-h","--help"],usageHelp= true,description= "Show this help message and exit.")
@Field boolean helpRequested

println "Hello World"

使用$ groovy ssbgt.groovy可以正常工作。

然后我尝试创建一个测试

import static picocli.CommandLine;

class SimpleTest extends GroovyTestCase {
    void testGroovy() {
        ssbgt ssbgt = new ssbgt();
        //CommandLine cmd = new CommandLine(ssbgt);
        //cmd.execute();
        assert(1 == 1);
    }
}

这无法运行

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup Failed:
C:\Users\aglauser\code\dev-tools\configTransform\SimpleTest.groovy: 1: unable to resolve class picocli
 @ line 1,column 1.
   @Grab('info.picocli:picocli-groovy:4.5.1')
   ^

1 error

为什么Grape无法在测试脚本中找到依赖关系,但可以在CLI命令脚本中工作?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。