当前位置: 首页 > 知识库问答 >
问题:

如何让sbt接收用Groovy编写的测试?

艾茂学
2023-03-14

共有1个答案

西门建安
2023-03-14

测试检测代码位于tests.discover中,您可能会对此感兴趣。似乎您所需要的只是带注释的方法列表和子类列表。如果您有找到它们的方法,您可能可以模拟代码中发生的事情。

正如您提到的,发现代码依赖于analysy数据类型,这是增量编译器的内部。您可以利用sbt(而不是Scala或Java编译器)负责增量编译的事实。对于Java编译,analyzingJavaCompiler.compile调用编译器,然后进行分析。

理论上,您可以定义AnalyzingGroovyCompiler,该AnalyzingGroovyCompiler使用与Java编译相同的机制。这并不完全是在公园里散步,因为有些部分隐藏在private[sbt]后面。长话短说,我编写了一个笨拙的概念验证,它使增量编译器为Groovy代码生成分析,并能够检测测试。

    null

我只测试了一个简单的用例

import org.junit.Test
import org.junit.Assert

class Foo {
  @Test
  public void foo() {
    Assert.assertEquals(1, 2)
  }
}

从sbt运行test会产生以下输出:

> test
[info] Start Compiling Test Groovy sources : /Users/xxx/sbt-2167-groovy/src/test/groovy 
[error] Test Foo.foo failed: expected:<1> but was:<2>, took 0.062 sec
[error] Failed: Total 1, Failed 1, Errors 0, Passed 0
[error] Failed tests:
[error]         Foo
[error] (test:test) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 1 s, completed Aug 23, 2015 5:05:01 AM

它可能不适用于未来版本的SBT。备注备注者。

 类似资料:
  • Gradle的Groovy插件声称它支持联合编译,允许自由混合和匹配Groovy和Java代码,并在两个方向上都有依赖关系“。 但是,我不认为这适用于测试代码。 我在使用位于中的类。 当尝试使用Gradle构建时,我会遇到如下错误: 请注意,是一个尚未编译的Groovy类(在Gradle输出中,我可以看到它在尝试之前没有运行,因为前者依赖于后者)。 我能够使用groovy-eclipse插件与Ma

  • 我想用groovy和Spock测试这个类:

  • 如 Serverless Framework 官方所说 虽然 Serverless 架构在服务业务逻辑方面引入了很多简单性,但是它的一些特性给测试带来了挑战。他们是: Serverless 架构是独立的分布式服务的集成,它们必须被独立地和一起地测试。 Serverless 架构依赖于互联网、云服务,这些服务很难在本地模拟。 Serverless 架构可以具有事件驱动的异步工作流程,这些工作流程很难

  • 我确实看到了一些关于在SonarQube中安装Groovy插件的相关答案,但是没有提到这是用于哪一个版本的SonarQube的解决方案(我不再看到这个插件可用)

  • 出于某种原因(我不是很好与Spock和新的嘲笑和攻击),我不能得到一个特定的方法来存根与我想要的。 我已经缩短了一些内容,但基本上我有一个从搜索中返回的书籍列表。每本书都有一个。这本书可能有较旧或较新的版本,但它们都具有相同的--如果用户选择,他们可以获取所有其他版本。 类别:版本 class:用于获取单个作品的附加版本的EditionResults 特别是,我在测试--出于某种原因,我一直收到的

  • 接口测试没有接口文档如何编写测试用例? 听说是可以通过抓包来确定请求参数和响应的预期结果,但是一直没理解的是,如果这个请求的参数和返回的响应结果是错误的(因为这个接口本来是需要测试的),测试用例又拿来做测试数据(即做请求数据和预期结果),这样的话不是白测试吗?还是说这个请求参数和返回的响应结果一定是正确的,为什么??? 希望知道的小伙伴解答一下,十分感谢!