在IntelliJ中使用分层Gradle项目的ScalaTest的默认工作目录

时间:2018-02-17 23:19:57

标签: scala gradle intellij-idea scalatest

我在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以使用父项目的目录将对我有用。

1 个答案:

答案 0 :(得分:1)

您可以通过执行以下操作更改IntelliJ中测试的默认工作目录:

  1. Open Run - >编辑配置......
  2. 展开"默认值"在左侧窗格中,选择" Scala Test"项目
  3. 设置"工作目录"字段

    将测试更改为不依赖于工作目录可能会更好。如果您访问"查询"将文件作为JVM资源而不是通过相对路径打开它,它应该在两个环境中都有效。见How do I load a file from resource folder?