Eclipse Photon无法解决测试源中的导入

时间:2018-06-29 11:35:27

标签: java testing mockito spring-test eclipse-photon

我已使用现有工作区移至Eclipse Photon。我在此工作区中有一些Maven项目。所有项目在Eclipse Oxygen中都没有任何错误。在Eclipse Photon中打开我的工作区后,所有导入org.mockito.Mockitoorg.springframework.mockorg.springframework.test的测试类都出错。这些导入无法解决,尽管Eclipse知道了,因为我可以跳入这些类。

为什么Eclipse Photon无法解决这些导入?我该如何解决?

3 个答案:

答案 0 :(得分:13)

如果这确实是一个Maven项目,并且您正在使用匹配的m2e-version 1.9,则它应该自动正确配置“包含测试源”设置和相关设置。

您可能需要通过右键单击项目并选择“ Maven”>“更新项目”来更新项目类路径

答案 1 :(得分:11)

我解决了,想分享我的结果。

eclipse光子中的构建路径属性在“源”选项卡中有一个新选项:包含测试源。文件夹myproject/src/test/java的此选项设置为 No 。当我尝试将其设置为时,出现以下错误:

  

项目“ myproject”中的源文件夹“ src / testjava”必须具有一个   也不用于主要来源的输出文件夹

尽管输出文件夹已设置为与myproject/src/main/java不同的路径,但仍显示错误。要重置设置,我取消选中选项允许输出文件夹作为源文件夹,然后再次设置所有输出文件夹。之后,我可以将上述选项设置为。结果,进口问题得到解决。

here中描述了原因(向下滚动到测试源)。它说:

  

对于每个项目,现在分两个阶段完成:首先   主要资源(在构建路径上看不到任何测试代码)和   然后是所有测试源。

由于未为test-source-folder设置该选项,因此它像main-source-folder一样被编译。因此,无法解析范围为 test 的依赖项中的测试类的导入。

答案 2 :(得分:1)

对于基于Maven的项目,我可以通过进入该项目的.classpath文件并添加...来解决该问题。

<attribute name="test" value="true"/>

标记属性,即

<classpathentry kind="src" output="target/test-classes" path="src/test/java">
    <attributes>
        <attribute name="optional" value="true"/>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="test" value="true"/>
    </attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="test" value="true"/>
    </attributes>
</classpathentry>

希望有帮助。