所以基本上我试图以以下形式运行一个测试:
@Benchmark
@Fork(jvmArgsAppend = "-Djava.lang.invoke.stringConcat=java.lang.invoke.StringConcatFactory.Strategy.BC_SB", value = 1)
public String java9StringBuilder(ThreadState state) {
// some implementation here
}
运行它时使用:
java -jar benchmarks.jar MyFullClassNameHere -v extra
不幸的是,它失败了,forked VM失败了,退出代码1
,没有更多的“详细”输出。
我做错了什么?
我确实收到了这些警告:
警告:未知模块:org.openjdk指定到--add-exports
警告:发生了非法的反射访问操作
警告:所有非法访问操作将在以后的版本中被拒绝
在本例中,Java9没有任何问题。您正在向分叉VM提供JVM选项,您是否尝试使用该选项运行而不首先使用JMH?则您会注意到该命令不正确,正确的形式是:
- @Fork(jvmArgs = "-Djava.lang.invoke.stringConcat=java.lang.invoke.StringConcatFactory.Strategy.BC_SB")
+ @Fork(jvmArgs = "-Djava.lang.invoke.stringConcat=BC_SB")
...因为bc_sb
是java.lang.invoke.StringConcatFactory.Strategy
枚举中的枚举常量。
我尝试在Eclipse Oxygo4.7上使用Java9。显然,我已经安装了Java9对marketplace氧气的支持。我无法让junit测试工作。我用两个类创建了简单的maven项目: null null 如何在Eclipse中使用Java9运行这个测试?
如何使用JUnit测试在我现有的项目中运行JMH基准测试?官方留档建议制作一个单独的项目,使用Maven阴影插件,并在方法中启动JMH。这是必要的吗?为什么推荐它?
所有测试返回“NosuchBeanDefinitionException:没有'com.example.networkService'类型的合格bean可用:预期至少有1个bean符合autowire候选。依赖项注释:{@org.springframework.beans.factory.annotation.autowired(required=true)}” 这是配置文件application
我试图在JUnit5测试环境中使用JUnit4。事实上,我已经升级了我的pom来使用更高版本的MOckito和POwerMock。到目前为止,所有测试都基于JUnit4。我将平台和vintage依赖项添加到我的pom.xml中。 更早的pom。xml依赖关系
有一种方法可以运行junit测试,只需在“mvn clean install”命令中添加参数?没有使用@Profile注释测试。
我有几个用@Benchmark注释的大型基准类。在使用基准构建jar后,我可以使用以下命令运行所有这些类 如果我不想运行所有基准测试,如何指定要运行的基准测试?