我使用以下spock依赖项
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>1.0-groovy-2.4</version>
<scope>test</scope>
</dependency>
我写了这个测试
class JsonIncludeResolverTest extends Specification {
JsonIncludeResolver uut;
def "test"(){
expect:
true
}
}
测试成功
现在我想使用Spring在规范中注入JsonIncludeResolver
JsonIncludeResolver
用@Component
注释,并在运行应用程序时成功注入。测试和组件都放在同一个maven模块中。
我在这里阅读了关于spum-spock
:如何将Spring bean注入spock测试
因此我添加了这个依赖版本
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-spring</artifactId>
<version>1.1-groovy-2.4</version>
<scope>test</scope>
</dependency>
在添加了运行s的依赖后
Exception in thread "main" java.lang.NoSuchMethodError: org.spockframework.util.ReflectionUtil.isAnnotationPresentRecursive(Ljava/lang/Class;Ljava/lang/Class;)Z
at org.spockframework.spring.SpringExtension.isSpringSpec(SpringExtension.java:83)
at org.spockframework.spring.SpringExtension.visitSpec(SpringExtension.java:59)
at org.spockframework.runtime.ExtensionRunner.runGlobalExtensions(ExtensionRunner.java:46)
at org.spockframework.runtime.ExtensionRunner.run(ExtensionRunner.java:40)
at org.spockframework.runtime.Sputnik.runExtensionsIfNecessary(Sputnik.java:88)
at org.spockframework.runtime.Sputnik.getDescription(Sputnik.java:55)
at com.intellij.junit4.JUnit4IdeaTestRunner.getDescription(JUnit4IdeaTestRunner.java:78)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
然后我尝试使用适当的注释
@ContextConfiguration
class JsonIncludeResolverTest extends Specification {
@Autowired
JsonIncludeResolver uut;
def "test"(){
expect:
uut != null
}
}
结果仍然是上述例外。
groovy测试在/src/test/groovy
下,这是一个可以在第一次成功运行测试时看到的工作环境。
尝试将Spock升级到1.1,如下所示:
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>1.1-groovy-2.4</version>
<scope>test</scope>
</dependency>
org。spockframework。util。反射直到。isAnnotationPresentRecursive()
自1.1版起通过此提交引入。
问题内容: 将模块插入项目后,如何在该模块中运行测试用例? 即我做了: 然后尝试测试其中的内容: 我们是否应该单独检查模块并进行测试?我不知道该怎么办。看来,当我知道如何找到已获取的模块时,但是当我使用它时,它在路径中“找不到”。 问题答案: 需要包,而不是相对于的文件夹。 因此,省略开头和结尾的文件名,它将起作用: 如果当前目录是您要测试的软件包文件夹,您甚至可以忽略它,例如 作为参考,请参阅C
摘要:从正在运行的Java程序加载jar会导致由类间依赖(例如语句)引起的引起的。我如何绕过它? 更详细的问题是: 我试图通过自己的Java程序将jar文件(我们称之为“服务器”)以编程方式加载到Java虚拟机中(我们称之为“ServerAPI”),并使用扩展和其他一些技巧来修改服务器的行为并与之交互。ServerAPI依赖于服务器,但如果服务器不存在,ServerAPI仍然必须能够从网站上运行和
我们刚刚从Visual Studio2008“升级”到Visual Studio2012。我们更新了我们的单元测试,现在它们在单独运行时通过,但是当我尝试运行全部时,我得到了以下错误: 还有人遇到过类似的问题吗?如果是的话,你是怎么解决的? 在MSDN上也问过同样的问题,但答案是“点击崩溃转储的链接”。这个答案对我没有帮助,因为我没有看到到崩溃转储的任何链接,并且我无法生成崩溃转储。 关于Stac
问题内容: 我有一个仅在设置位标志时才运行的测试文件。我遵循了golang的测试文档中的一个简单示例: 如果我运行,它将按预期运行。但是,当我运行时,所有其他包测试均失败: 我希望能够运行所有测试,而不必担心在每个测试文件中解析此标志。有没有办法做到我所缺少的? 问题答案: 运行时,它会以相同的参数 将 每个程序包 作为单独的可执行文件 运行测试。因此,如果要向每个程序包传递一个标志,则每个程序包
我在mvn中有以下结构。 模块A是所有后续模块(B、C、...)继承的模块。该模块具有通用功能和jUnit/联调用例。它不是Web应用程序。 模块B是一个web应用程序。它依赖于模块B。 模块C是一个web应用程序。它依赖于模块B。 我们的Jersey rest/api代码位于模块A中。通过这种方式,无论我们部署什么模块,我们都可以访问rest/api。 到目前为止,我已经成功地在模块C中配置了M
问题内容: 尝试使用gdb调试程序时,它无法在OPENSSL_cpuid_setup中报告SIGILL。 有了这个简单的代码,我的行为与: 它可以编译并运行良好,但是从回溯之后的gdb报告开始 如何在gdb下运行这样的程序? 问题答案: SSL_library_init在gdb下运行时会导致SIGILL … 实际上,它一直都在执行,而不仅仅是在GDB下。当库测试处理器功能时,这是启动代码中的正常行