Scala 在Intellij上运行测试:未找到类
我正在评估IntelliJ(13.0.2 133.696),无法从IDE中运行jUnit测试 我的项目是一个多模块的gradle项目,使用scala 测试类位于src/Test/scala/xxx/xxxxx/xxx/xxxxx/xxxxx下,每次尝试从IDE运行时都会出现相同的错误:Scala 在Intellij上运行测试:未找到类,scala,intellij-idea,gradle,Scala,Intellij Idea,Gradle,我正在评估IntelliJ(13.0.2 133.696),无法从IDE中运行jUnit测试 我的项目是一个多模块的gradle项目,使用scala 测试类位于src/Test/scala/xxx/xxxxx/xxx/xxxxx/xxxxx下,每次尝试从IDE运行时都会出现相同的错误: Class not found: "xxx.xxxxx.xxx.xxxx.xxxxx.AccountRepositoryTest" 测试类并不是什么新奇的、简单的jUnit测试: @RunWith(classO
Class not found: "xxx.xxxxx.xxx.xxxx.xxxxx.AccountRepositoryTest"
测试类并不是什么新奇的、简单的jUnit测试:
@RunWith(classOf[SpringJUnit4ClassRunner])
@ContextConfiguration(classes = Array(classOf[DataConfig], classOf[SettingsConfig]))
class AccountRepositoryTest extends AssertionsForJUnit {
我发现了一个相关问题,但提供的修复程序(升级到13.0.2)不起作用
我甚至尝试升级到最新的EAP,但仍然存在相同的问题。检查该测试的运行/调试配置 “使用模块的类路径和SDK:”应该指向您的模块 同时,您的模块必须有一个Scala方面,并且该类必须位于
“测试源文件夹”。我遇到了同样的问题,在我的例子中,问题是由于“项目编译器输出”路径在项目设置中留空
为了修复它,我在我的项目根目录中创建了一个
classes
目录,并将project compiler output
设置为绝对路径(使用…
按钮浏览)。确保您的测试类包和您编写测试用例的类不相同。如果测试用例和类都有相同的包,编译器将查找src文件夹并忽略测试文件夹 我也有同样的问题。我在模块设置->模块->路径->测试输出路径中为我的测试类字节码目录更改了一个路径(排除上的输出路径)。现在一切都好了 转到项目设置->项目
填写项目编译器输出:
示例D:\repo\Project\out
转到模块->路径
确保:
输出路径类似于D:\repo\Project\out\production
测试输出路径,如D:\repo\Project\out\test
应该有用 我也遇到了同样的问题,Intellij没有找到测试输出路径。但是,运行常规应用程序没有问题 对我来说,修复正在从继承的项目编译路径转变为使用模块编译输出路径 项目设置->模块->(您的模块)->路径(选项卡)
将单选按钮更改为“使用模块编译输出路径”。对于我来说,自动填充建议有效,如果自动建议无效,您可能需要手动输入正确的测试输出路径。记得应用设置更改。我浏览了其中的一些答案,对项目设置大惊小怪,尝试了一些东西,等等,但都没有效果。(完全披露:我不是想在这里摆弄Gradle;我只是在使用Maven,但我不知道这与Gradle有什么关系。) 我用的是创意14 我发现有效的是,因为IntelliJ似乎迷失了方向,这是:
$ rm -rf .idea project-name.iml
然后重新启动IntelliJ并执行文件->打开->导航到我的项目根目录等操作——简而言之,就是重新创建我的项目
IntelliJ克服了它。最初在这个项目中,我可能把事情搞砸了,因为我对包和类名进行了大量重构,甚至更改了项目名称。(发生这种情况可能是我的错。)您可以尝试使缓存无效并重新启动。这通常可以解决添加新依赖项/类时出现的问题。只需将舒尔作为测试文件的文件夹,并在Intellij IDEA中标记为测试文件夹即可。这对我很管用。
如果有多个目录的源文件具有相同的名称,请将包添加到类源文件中(如果不存在的话) 修改模块的.iml文件标记中的内容,如下所示。它对我有用
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
IDEA restart为我解决了这个问题。简单的“构建>重建项目”对我有效。也有同样的问题,通过在完整路径中没有空格、冒号、句点或其他特殊字符的目录路径中重新创建项目来修复。显然IntelliJ对项目路径很挑剔。在构建、清理和重建、关闭和打开项目(使用IntelliJ)之后,我的问题仍然存在,项目编译器输出是正确的;最后,我只是从我的项目目录中删除了这个文件夹。请注意,我的问题只是关于新添加的Junit调用新添加的方法。其余的Junits运行良好。对我来说,一个测试失败了,错误误导了我
因此:
自gradle项目X起,删除以下两项:
- X/构建
- X/输出
.java
扩展。例如a
文件名为UserTest
而不是UserTest.java
- 很难找到,IDE中的一切看起来都很正常 (显然IntelliJ使用文件内容来显示 相应的符号)
- 只要我使用命令行中的
(在pom.xml中启用了surfere插件)或专用的maven启动器配置,这就不是问题,但导致 使用IntelliJs测试或覆盖率菜单/按钮启动时的初始错误消息mvn
- 当我添加缺少的文件结尾时,一切都正常工作
- 重建项目(+奇怪的是,选择另一个应用程序,重新选择上下文切换的想法,似乎强制重新加载文件?!)
- 使缓存无效/重新启动想法
- 重新导入项目/创建新项目