ScalaTest Plus 无法识别测试
ScalaTest Plus not recognizing tests
我的任务是用 Scala Play 更新和编写一系列应用程序测试,这是一种我不熟悉的语言和框架。我想做的部分工作是集成 ScalaTestPlus 库。为了开始,我一直在遵循以下教程:
https://www.playframework.com/documentation/2.2.x/ScalaTestingWithScalaTest
不幸的是,我还没有走得太远。我在测试文件夹中添加了一个新的单元测试文件:
import org.scalatestplus.play._
class StackSpec extends PlaySpec {
"A Test" must {
"pass" in {
assert(1 == 1)
}
"Fail" in {
assert(1 != 1)
}
}
}
并且我更新了我的 build.sbt 以包含 scalatestplus 库
"org.scalatestplus" % "play_2.37" % "1.2.0" % "test"//,
使用 Activator,我正在尝试 运行 我的测试文件仅供测试。一切都编译无误,但激活器没有找到任何测试
[info] No tests were executed.
我不认为问题出在激活器上,因为我可以 运行 使用测试和仅测试命令的旧测试文件(来自以前的工程师)。先前(工作)测试文件之一的快速示例:
import java.util.concurrent.TimeUnit
import com.sun.xml.internal.bind.v2.TODO
import scala.collection.JavaConverters._
import controllers.Application
import models.{Item, PriorityBucket}
import play.api.test._
class WebSpec extends PlaySpecification {
"Home page" should {
"do something" in new WithSeleniumDbData(TestUtil.testApp) {
Redacted.deleteAll()
val ObId = TestUtil.create(Some(PriorityBucket.Low),
Some(Application.ENGLISH))
val item = Item.find(ItemId).get
browser.goTo("/")
browser.await().atMost(2,
TimeUnit.SECONDS).until(Selectors.all_obs).isPresent
}
有什么我误入歧途的想法吗?在此先感谢您的帮助!
我正在使用 Scala 2.11
我正在使用 play 2.3.7
编辑:可能相关,我将扩展名从 PlaySpec 切换到 FlatSpec 并在编译时看到以下错误:
SampleSpec.scala:10: value in is not a member of String
[error] "pass" in {
我还确保导入了 FlatSpec,这让我有点困惑——FlatSpec 是 ScalaTest 的成员而不是 ScalaTestPlus 的成员,我不明白为什么编译会失败。
更新:为了进一步调查这个问题,我启动了一个全新的 Play 应用程序并复制了我的示例测试。在对版本进行了一些处理之后,我已经能够使用套件的其余部分对激活器测试命令进行 运行 测试。不幸的是,任何其他命令如 test-only 仍然没有返回任何测试 运行.
对于那些跟随我 运行 的人...在这种情况下 class 名称需要与文件名相同,否则仅测试无法找到它。
我的任务是用 Scala Play 更新和编写一系列应用程序测试,这是一种我不熟悉的语言和框架。我想做的部分工作是集成 ScalaTestPlus 库。为了开始,我一直在遵循以下教程:
https://www.playframework.com/documentation/2.2.x/ScalaTestingWithScalaTest
不幸的是,我还没有走得太远。我在测试文件夹中添加了一个新的单元测试文件:
import org.scalatestplus.play._
class StackSpec extends PlaySpec {
"A Test" must {
"pass" in {
assert(1 == 1)
}
"Fail" in {
assert(1 != 1)
}
}
}
并且我更新了我的 build.sbt 以包含 scalatestplus 库
"org.scalatestplus" % "play_2.37" % "1.2.0" % "test"//,
使用 Activator,我正在尝试 运行 我的测试文件仅供测试。一切都编译无误,但激活器没有找到任何测试
[info] No tests were executed.
我不认为问题出在激活器上,因为我可以 运行 使用测试和仅测试命令的旧测试文件(来自以前的工程师)。先前(工作)测试文件之一的快速示例:
import java.util.concurrent.TimeUnit
import com.sun.xml.internal.bind.v2.TODO
import scala.collection.JavaConverters._
import controllers.Application
import models.{Item, PriorityBucket}
import play.api.test._
class WebSpec extends PlaySpecification {
"Home page" should {
"do something" in new WithSeleniumDbData(TestUtil.testApp) {
Redacted.deleteAll()
val ObId = TestUtil.create(Some(PriorityBucket.Low),
Some(Application.ENGLISH))
val item = Item.find(ItemId).get
browser.goTo("/")
browser.await().atMost(2,
TimeUnit.SECONDS).until(Selectors.all_obs).isPresent
}
有什么我误入歧途的想法吗?在此先感谢您的帮助!
我正在使用 Scala 2.11 我正在使用 play 2.3.7
编辑:可能相关,我将扩展名从 PlaySpec 切换到 FlatSpec 并在编译时看到以下错误:
SampleSpec.scala:10: value in is not a member of String
[error] "pass" in {
我还确保导入了 FlatSpec,这让我有点困惑——FlatSpec 是 ScalaTest 的成员而不是 ScalaTestPlus 的成员,我不明白为什么编译会失败。
更新:为了进一步调查这个问题,我启动了一个全新的 Play 应用程序并复制了我的示例测试。在对版本进行了一些处理之后,我已经能够使用套件的其余部分对激活器测试命令进行 运行 测试。不幸的是,任何其他命令如 test-only 仍然没有返回任何测试 运行.
对于那些跟随我 运行 的人...在这种情况下 class 名称需要与文件名相同,否则仅测试无法找到它。