我在IntelliJ IDEA(GitHub repository)中开发了一个Scala项目。该项目使用Gradle 4.3构建,并使用ScalaTest及其最新的Gradle插件进行测试(id 'com.github.maiflai.scalatest' version '0.19'
)。 Scala插件的版本是2017.3.11.1
项目有两个层次结构:根级别的父项目和子项目子项目。测试使用位于根级别的输入文件(例如./compiler/
目录的项目使用./queries/
目录中的文件)。测试引用具有相对路径的文件:例如,如果编译器使用查询文件,则将它们称为../queries/query-file.ext
。
使用此设置,运行./gradlew test
时,测试可以在命令行中正常运行。但是,当我运行一个新的测试表单IntelliJ时,工作目录始终设置为根级别,这会破坏测试。 (当然,这可以手动修复,但必须为每个执行的测试完成)。请注意,我使用"每个源集创建单独的模块"将项目导入IntelliJ IDEA;设置(因为issue SCL-12718,尚未在稳定中修复 - 我不确定这是否能解决问题)。
有没有办法解决或解决这个问题?更新ScalaTest Gradle配置以使用当前子项目的目录或重新配置IntelliJ以使用父项目的目录将对我有用。
答案 0 :(得分:1)
您可以通过执行以下操作更改IntelliJ中测试的默认工作目录:
将测试更改为不依赖于工作目录可能会更好。如果您访问"查询"将文件作为JVM资源而不是通过相对路径打开它,它应该在两个环境中都有效。见How do I load a file from resource folder?