日食/ Maven的:运行时,它们JUnit测试未编译日食/ Maven的:运行时,它们JUnit测

2019-05-13 08:50发布

我正在使用Maven和Eclipse(m2eclipse插件)的项目。 我有与JUnit测试问题:

有时,在Eclipse中运行它们时,他们不会被编译,但旧的类文件代替。 当我删除的类文件,我得到ClassNotFoundExceptions在Eclipse。 然后,我必须使用手动重新编译他们mvn test-compile或其他目标。

我还注意到,有时被放入测试的类文件classes子目录,而不是test-classes

我真的无法弄清楚什么是错的。

JUnit的Java文件都内src/main/java和正确命名( *Test.java )。

我必须编译并通过Maven的始终运行呢? 为什么不Eclipse的编译文件,当我想运行它们? (有趣的是, 有时它。有时,一切完美的作品。)

Answer 1:

我有同样的问题与STS的Eclipse(Spring开发的变体),M2E和JUnit。 解决的办法是设置输出文件夹src/test/javatarget/test-classes

  1. 右键单击src/test/java在Package Explorer文件夹
  2. 选择构建路径 - > 配置输出文件夹
  3. 输入target/test-classes ,点击OK

现在,在测试类的更改正确编译,你应该能够在Eclipse中运行JUnit测试。

的问题是,Eclipse的编译单元测试,以默认的输出文件夹target/classes而JUnit的插件正确地尝试从运行它们test-classes

有几个重复这个问题:

  • ClassNotFoundException的Eclipse内运行JUnit单元测试时(使用Maven)
  • Eclipse不看我的新JUnit测试
  • JUnit的不使用最新的文件


Answer 2:

除了下面的答案

  1. 右键单击src /测试/ java文件夹
  2. 选择构建路径 - >配置输出文件夹
  3. 输入目标/测试类,点击OK

你应该检查,以确保您的制造商是设置正确,通过右键单击您的项目并转到属性- >生成器 。 如果你看到你的建设者丢失,你需要安装一个。 在我的情况下,Maven项目有一个AspectJ的依赖,当我使用Maven的Eclipse插件来构建我的Eclipse项目,它一直在寻找默认AspectJ的建设者。 我安装了AspectJ的开发工具,它解决了这个问题。

希望这可以帮助!



Answer 3:

另一点:JUnit测试类,应该在的src / test / java下,没有的src / main / java的,否则它们不会被正确的Maven检测为测试类,他们将被包含在打包的罐子,而不是在试验瓶。



Answer 4:

你所面临的问题,最有可能的解释是,输出文件夹src/test/java配置不正确。

相反的手动修复此配置 ,你可以有m2eclipse的修复这个给你:该项目只需右键单击并选择的Maven>更新项目



Answer 5:

我面临着同样的问题。 上述配置的输出文件夹和Maven的>更新项目,但既不工作的建议尝试。 最后,改变了我的testOutputDirectory“建/班”,以及现在的单元测试得到回升和执行。

终于找到了问题的原因。 在我的POM,我们也按如下配置的Maven编译器插件

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <outputDirectory>build/classes</outputDirectory>
            </configuration>
       </plugin>

不需要输出目录的配置和高于问题的原因。 除去此标记后,junits越来越编译构建> testclasses文件夹,并在Maven构建以及正在运行。 yippee的:)



Answer 6:

请检查它可以在你的pom.xml配置“testSourceDirectory”路径。 然后,添加文件夹(在“testSourceDirectory”路径配置)到Eclipse构建路径。

请找到下面的pom.xml样本“testSourceDirectory”:

<build>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    <plugins>
     <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>      
    </plugins>
  </build>


Answer 7:

确保没有任何感叹号项目的图标! 就我而言,我忽略了,有一个惊叹号,如: 项目图标感叹号

打开“标记”的观点,然后根据提示解决问题。 什么是“标记”的视角展示

JUnit测试类可以成功后,我称之为“MVN干净的测试”,因为它们不是指其在“标记” perspective.Therefor警告不可读的罐子,它很容易忽略它被执行..



Answer 8:

对于有人对Java的斯卡拉混合项目上工作,这是后话要注意。 即使做下面所示的方式配置后,

<build>
    <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
    <plugins>
    ...
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>3.3.2</version>
            <configuration>
                <testSourceDir>${basedir}/src/test/scala</testSourceDir>
                <testOutputDir>${basedir}/target/test-classes</testOutputDir>
            </configuration>
         </plugin>
    </plugins>
</build>

和做一个Maven>更新项目 ,日食荣誉在项目中的src /测试/ java文件夹的输出目录,但不是在src /测试/斯卡拉文件夹。 (您可以通过右键单击特定源文件夹,但是这出并选择构建路径>配置输出文件夹...作为POM指定在前一种情况下应该显示的位置,而不是为以后的情况。

这已经是使用同阶M2E一个已知的bug这里提到: http://scala-ide.org/docs/tutorials/m2eclipse/

警告

如2013年3月的,一个错误会导致两者的src /主/阶和src /测试/阶以使用默认的输出文件夹(目标/类)。 构建测试时,因为它们的类文件将不会在目标/测试类结束,因为在命令行上构建他们什么时候这可能是令人困惑>。 您可以通过手动改变输出文件夹的src /测试/斯卡拉解决这个问题。



Answer 9:

Eclipse是不希望别的与类文件被搞混。 它假定,如果你还没有editted文件在eclipse它并没有改变,不需要进行编译。 我认为这个问题从日食和Maven共享输出目录茎。 我经常看到这一点,如果我MVN构建失败,它将已经删除的类文件作为清洁的一部分,但不是编译新的。 我认为最好的办法是将有单独建立MVN和Eclipse迪尔斯,但我从来没有考虑这一点。



Answer 10:

我的问题是不是JUnit的插件,而是在我的pom.xml的配置。

检查所有的回答这个问题,@ Gulats的回答暗示我,我应该尝试设置后testOutputDirectory在我的Maven的编译器插件部分,该诀窍:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.8</source>
    <target>1.8</target>
    <testOutputDir>${basedir}/target/test-classes</testOutputDir>
  </configuration>
</plugin>


文章来源: Eclipse/Maven: JUnit tests not compiled when running them