使用scalatest,sbt目录结构时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用scalatest,sbt目录结构时出错相关的知识,希望对你有一定的参考价值。

我有一个使用sbt项目结构的项目。直到昨天一切都在src/main/scala,但现在我添加了一些使用scalatest的测试并将其放入src/test/scala

这是src/main/scala/SomeTables.scala中的相关代码(使用光滑3):

package com.slicktest

import slick.driver.HsqldbDriver.api._

case class MyData(id: Int, my_double: Double)

class MyTable(tag: Tag) extends Table[MyData](tag, "Test_Table") {
  def id = column[Int]("ID_Test", O.PrimaryKey, O.AutoInc)
  def my_column = column[Double](myTable.my_value)
  def * = (id, my_column) <> ((MyData.apply _).tupled, MyData.unapply)
}
object myTable extends TableQuery(new MyTable(_)) {
  var my_value = ""
}

如果我只编译src/main/scala中的文件它工作正常,但是当我还想在sbt test中编译测试文件(运行src/test/scala)时,它会输出以下错误消息:

Error:scalac: error while loading MyTable, class file 'C:...	argetscala-2.11classescomslicktestMyTable.class' has location not matching its contents: contains class com.slicktest.myTable

这里有什么问题以及如何解决?

答案

尝试将myTable更改为MyTable(因为伴随对象应该被命名) - 我认为编译器会尝试创建MyTable.classmyTable.class,并且Windows名称不区分大小写。所以你用另一个文件覆盖一个文件。

另一答案

您的项目目录中可能存在类似的类名,这会产生冲突。您可以尝试更改类名,看看它是否解决了问题。

以上是关于使用scalatest,sbt目录结构时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 ScalaTest 时从 SBT 中排除特别标记的测试

使用 ScalaTest 和 SBT android-sdk-plugin

如何使用 SBT Jenkins 插件运行特定测试以进行 ScalaTest 测试

如何在 ScalaTest / SBT 中按顺序运行测试套件?

Sbt 无法解析 Intellij IDEA 上的 Scalatest

sbt 中的 ScalaTest:有没有办法在没有标签的情况下运行单个测试?