在Intellij Idea中,如何使用不同于我的源Java版本的Java版本运行测试。

huangapple go评论73阅读模式
英文:

In Intellij Idea, how to run tests with different java version than my source java version

问题

我的主要源代码使用Java版本7。

我想在我的测试中使用Java 8,所以我更新了编译器插件如下:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>3.8.1</version>
   <configuration>
      <source>7</source>
      <target>7</target>
      <testSource>8</testSource>
      <testTarget>8</testTarget>
   </configuration>
</plugin>

这样我就可以在单元测试中使用Java 8的特性。当我从命令行使用Maven运行测试时,这是有效的。

但是当我直接从IntelliJ运行测试时,它会抛出错误,说“lambda表达式在源版本7中不受支持”。

看起来它在测试中使用了相同的源版本。

我如何配置IntelliJ以在测试中使用不同的Java版本?

英文:

My main source has java version 7

I want to use java 8 from my tests. so i updated the compiler plugin to

&lt;plugin&gt;
   &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
   &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
   &lt;version&gt;3.8.1&lt;/version&gt;
   &lt;configuration&gt;
      &lt;source&gt;7&lt;/source&gt;
      &lt;target&gt;7&lt;/target&gt;
      &lt;testSource&gt;8&lt;/testSource&gt;
      &lt;testTarget&gt;8&lt;/testTarget&gt;
   &lt;/configuration&gt;
&lt;/plugin&gt;

This way I can use java 8 features in unit tests. This works fine when i run the tests using maven from commandline.

But when i run the test directly from intellij, it throws error saying 'lambda expressions are not supported in source 7'

looks like it use the same source version for tests.

How do i configure Intellij to use different java version for tests

答案1

得分: 1

在 IntelliJ IDEA 中尚不支持在 Maven 项目中通过另一个 Java 解释器运行测试。以下是该功能的请求链接:

https://youtrack.jetbrains.com/issue/IDEA-85478

欢迎投票并关注以获取更新。

其中一位用户提供了一种解决方法(使用单独的 Maven 配置文件):https://youtrack.jetbrains.com/issue/IDEA-85478#focus=Comments-27-1994481.0-0

顺便提一下,在 Gradle <-> IntelliJ IDEA 集成中是支持的:

compileTestJava {
    sourceCompatibility = "1.8"
}
英文:

Running tests via another Java interpreter in Maven project is not supported in IntelliJ IDEA yet. Here is the feature request for that:

https://youtrack.jetbrains.com/issue/IDEA-85478

Feel free to vote and follow it for updates.

There is a workaround described by one of the users (separate Maven profile): https://youtrack.jetbrains.com/issue/IDEA-85478#focus=Comments-27-1994481.0-0

By the way, this is supported in Gradle<->IntelliJ IDEA integration:

compileTestJava {
    sourceCompatibility = &quot;1.8&quot;
}

答案2

得分: 0

在Maven项目中使用不同的JDK版本运行测试自从IntelliJ IDEA 2022.1版本开始可用。

英文:

Running tests with a different JDK version in Maven project is available since IntelliJ IDEA 2022.1

huangapple
  • 本文由 发表于 2020年9月24日 18:42:18
  • 转载请务必保留本文链接:https://go.coder-hub.com/64044759.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定