首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从测试中解析依赖项

无法从测试中解析依赖项
EN

Stack Overflow用户
提问于 2019-07-19 09:29:43
回答 2查看 384关注 0票数 0

我是斯卡拉的新手。我试图在IntellIj中创建一个scala项目,并添加一个测试类。我在sbt中使用以下两个依赖项。

代码语言:javascript
复制
libraryDependencies += ("org.scalactic" %% "scalactic" % "3.0.8")
// https://mvnrepository.com/artifact/org.scalatest/scalatest
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test

但是我无法使用测试类‘FunSuite’中的类ProcessCSVTest.scala进行测试,因为它会产生编译错误。

虽然我可以在IntellIj中看到外部库中的依赖项

Build.sbt文件

代码语言:javascript
复制
name := "CSVParser"

version := "0.1"

scalaVersion := "2.13.0"

libraryDependencies += ("org.scalactic" %% "scalactic" % "3.0.8")
// https://mvnrepository.com/artifact/org.scalatest/scalatest
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test

完整的代码可以在这里找到- https://github.com/practice09/CSVParser

有人能告诉我我哪里做错了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-19 10:17:38

一个问题是ProcessCSVTest.scalamain源下的测试,这意味着ScalaTest需要在主类路径上,但是在build.sbt中,ScalaTest依赖的作用域是Test类路径。

代码语言:javascript
复制
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test

因此,如果您像这样删除Test作用域

代码语言:javascript
复制
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8"

然后,ScalaTest将在主类路径上结束,我们可以添加以下导入

代码语言:javascript
复制
import org.scalatest.FunSuite

不过,我的建议是将测试从主要源移出,并将它们放在src/test/scala/下,然后像以前一样在Test下对依赖项进行范围调整。

代码语言:javascript
复制
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.8" % Test

下面的命令用sbt所期望的正确的项目结构构建一个示例

代码语言:javascript
复制
sbt new scala/scala-seed.g8

因此,尝试探索它是如何设置和适合您的项目匹配。

票数 2
EN

Stack Overflow用户

发布于 2019-07-19 09:53:53

因为FunSuite在包中,所以需要添加

代码语言:javascript
复制
import org.scalatest.FunSuite

如果您将光标放在它和Alt+Enter上,您应该得到一个修复它的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57109528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档