Как сравнить Scala с JMH в Intellij?

Я не могу понять, как сделать тесты программ Scala в Intellij с JMH.

Вот что я сделал до сих пор:

Добавлен JMH SBT-плагин

// build.sbt
name := "Project"
version := "1.0"
scalaVersion := "2.11.8"
enablePlugins(JmhPlugin)

// project/plugins.sbt
logLevel := Level.Warn
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.2.10")

Вот сайт плагина

Создан эталонный класс

// src/main/scala/MyBenchmark.scala
import org.openjdk.jmh.annotations.Benchmark

class MyBenchmark {

    @Benchmark
    def test(): Unit = println("test")

}

Создал SBT-задачу в Intellij

Intellij Run Configuration

Но после выполнения задачи я просто получаю исключение:

Annotation generator had thrown the exception.
java.lang.NullPointerException
    at org.openjdk.jmh.generators.reflection.RFClassInfo.getPackageName(RFClassInfo.java:51)
    at org.openjdk.jmh.generators.core.BenchmarkGenerator.validateBenchmark(BenchmarkGenerator.java:243)
    at org.openjdk.jmh.generators.core.BenchmarkGenerator.generate(BenchmarkGenerator.java:90)
    ....

Что я делаю неправильно?

1 ответ

Попробуйте добавить имя пакета в тестовый класс.

Поскольку JMH жалуется на имя пакета не найдено. org.openjdk.jmh.generators.reflection.RFClassInfo.getPackageName(RFClassInfo.java:51)

Вы должны добавить строку как:

package your.path;
Другие вопросы по тегам