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

时间:2016-07-29 08:21:30

标签: scala sbt

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

以下是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 = "" } 中的相关代码(使用光滑3):

src/main/scala

如果我只编译sbt test中的文件,它可以正常工作,但是当我还要编译src/test/scala中的测试文件(运行Error:scalac: error while loading MyTable, class file 'C:\...\target\scala-2.11\classes\com\slicktest\MyTable.class' has location not matching its contents: contains class com.slicktest.myTable )时,它会输出以下错误消息:

struct

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

2 个答案:

答案 0 :(得分:0)

尝试将myTable更改为MyTable(因为伴随对象应该被命名) - 我认为编译器会尝试创建MyTable.classmyTable.class,并且在Windows名称上也是如此不敏感的。所以你用另一个文件覆盖一个文件。

答案 1 :(得分:0)

您的项目目录中可能有类似的Class名称,这可能会引起冲突。您可以尝试通过更改类名来查看它是否可以解决问题。