我可以在maven项目中运行IntelliJ单元测试而不重新运行maven目标吗?

我可以在maven项目中运行IntelliJ单元测试而不重新运行maven目标吗?,maven,intellij-idea,junit,Maven,Intellij Idea,Junit,我有一个具有深度maven结构的项目,正在评估从Eclipse到IntelliJ的转换 我已经导入了顶级pom.xml。我知道我可以: 使用maven目标构建整个项目(我使用“测试编译”来构建测试类) 从IntelliJ测试运行程序运行测试。这似乎可以从项目的目标文件夹中找到类/测试类 但是,我只想更改测试或测试下的代码,保存它,然后重新运行它,而不必再次手动运行maven测试编译(就像我在Eclipse中所做的那样)。这在IntelliJ中可能吗 我认为问题在于IntelliJ“Build P

我有一个具有深度maven结构的项目,正在评估从Eclipse到IntelliJ的转换

我已经导入了顶级pom.xml。我知道我可以:

  • 使用maven目标构建整个项目(我使用“测试编译”来构建测试类)
  • 从IntelliJ测试运行程序运行测试。这似乎可以从项目的目标文件夹中找到类/测试类
  • 但是,我只想更改测试或测试下的代码,保存它,然后重新运行它,而不必再次手动运行maven测试编译(就像我在Eclipse中所做的那样)。这在IntelliJ中可能吗


    我认为问题在于IntelliJ“Build Project”操作没有将测试类(和其他类)构建到测试运行程序查找的目标文件夹中。

    如果在IntelliJ IDEA中导入Maven项目,您将能够从IDE而不是Maven构建和运行测试,因为增量编译的缘故,Maven要快得多


    确保并使用JUnit运行/调试配置,不要运行maven目标。

    感谢@CrazyCoder的建议,我能够通过以下步骤实现这一点,因为我认为问题在于Eclipse工件与IntelliJ工件的斗争:

  • 从整个代码树中删除所有.classpath、.project和.iml文件
  • 从根本上消除想法-我们需要重新开始
  • 在IntelliJ中打开顶级pom.xml
  • 如果需要,执行
    mvn编译
    (由于某些生成的源代码,我需要)
  • 重建项目

  • 在此之后,不要再在Eclipse中打开您的项目

    首先,您应该将整个项目导入IntelliJ或Eclipse。您只需在IDE(Eclipse/IntelliJ)中的代码更改后重新运行测试(通过单击测试),否则会出现问题…除此之外,您的构建在普通命令行上运行良好吗?我已将整个项目导入IntelliJ。重新运行测试似乎是以上次构建到目标/测试类时的状态运行测试。事实上,如果我重建项目,它会清除目标中的所有.class文件,并且再次尝试运行测试时会报告“找不到类”。确实有问题……顺便问一下:您使用哪个IDEA版本?我确实禁用了该选项,并且正在使用IntelliJ run/Debug。我真的觉得问题在于,测试运行程序只在/target中查找测试类,IntelliJ构建将它们放在其他地方。测试运行程序应该使用类路径,而不是硬编码目录。IntelliJ IDEA输出不与Maven共享,这是出于设计,但它不应影响正确编写的应用程序和测试,这些应用程序和测试不依赖于输出目录位置。好的。。。我是否可以调试一些东西来了解为什么不会发生这种情况?从IDE启动if时,请查看测试命令行中的类路径。它是否包含输出目录?这些输出目录是否具有所需的.class文件和资源?在使用Build | Build之后,类是否会出现在这些输出目录中?测试中是否有明确引用
    target
    目录的配置?如果您想在这里获得帮助,我将不胜感激。此外,有一次我从命令行打开IntelliJ,出于某种原因,它在父文件夹中打开。因此,它没有打开C:\dev\myProject,而是打开了C:\dev。这意味着有一个IntelliJ配置文件夹创建了C:\dev\.idea。当我在正确的位置关闭并再次打开时,它似乎可以工作,但我无法从IDE可靠地运行测试,因为一些路径在.iml文件中被弄乱了。解决方案是删除C:\dev\.idea、C:\dev\myProject\.idea和所有*.iml文件,然后重新开始。