标签: scalatest

在Scalatest失败时执行专门的功能

我正在使用selenium在Scala Web应用程序上执行集成测试.我想在测试失败时将页面的html截图或打印到控制台中.我目前的设置是使用Selenium 2.0和Spec的Scalatest.

无论如何要拦截故障或从AfterEach覆盖方法确定测试的状态?

testing selenium specifications scala scalatest

2
推荐指数
1
解决办法
323
查看次数

是否有为ScalaTest匹配器添加线索的语法?

是否有一个习惯用于为ScalaTest匹配器添加线索,以便线索将成为断言失败的一部分?我知道我现在可以像这样写一个ScalaTest断言:

withClue("expecting a header row and 3 rows of data") {
  rowCount should equal(4)
}
Run Code Online (Sandbox Code Playgroud)

这是为断言添加线索的唯一语法吗?能够写一个断言看起来像这样的东西会很好:

rowCount should equal(4) because("expecting a header row and 3 rows of data")
Run Code Online (Sandbox Code Playgroud)

scala scalatest

2
推荐指数
1
解决办法
506
查看次数

使用ScalaTest将其他参数传递给测试

目前我正在使用IntelliJ Idea 15和Scalatest框架进行一些单元测试.我需要将自己的参数传递给测试,并以某种方式从代码中读取它们.例如:假设我有这样的课程

class Test extends FunSuite {
   test("Some test") {
       val arg = // here I want to get an argument which I want to pass. Something like args("arg_name")
       println(arg)
       assert(2 == 2)
   }
}
Run Code Online (Sandbox Code Playgroud)

并且通过参数运行测试我想做类似的事情

test -arg_name=blabla
Run Code Online (Sandbox Code Playgroud)

所以,问题是如何传递这个论点以及如何获得它.

testing scala scalatest

2
推荐指数
2
解决办法
4790
查看次数

如何在Play ScalaTest上生成HTML报告

我的目的是生成一个可读的HTML测试报告,该报告将捕获功能测试引发的功能/场景.我正在使用FeatureSpec我的测试.(然后我可以将此报告显示给我的产品团队以获得他们的验收批准).

我在Play控制台上尝试了以下选项:

test-only -h target/html-report MySpecFile 
Run Code Online (Sandbox Code Playgroud)

这个生成了一堆js和css文件,但我没有看到一个html文件.

我也尝试在我的sbt文件中添加这个:

testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-u", "target/test-reports")
Run Code Online (Sandbox Code Playgroud)

这只会生成一个xml文件.

非常感谢您的帮助.我用Google搜索了答案,但到目前为止未能获得有效的解决方案.

scala scalatest playframework

2
推荐指数
1
解决办法
2260
查看次数

无法解决的依赖关系org.scallatest#scalatest_2.11; 2.2.6:未找到

我刚刚开始在Coursera的Scala专业化中进行函数式编程.处理设置并浏览第一个视频.当我在Intellij中修改sbt时,我得到"找不到模块:org.scallatest#scalatest_2.11; 2.2.6"

来自日志

[info]从/ Users/Nedim/development/webfonts811/SimpleName/project [info]加载项目定义将当前项目设置为SimpleName(在构建文件中:/ Users/Nedim/development/webfonts811/SimpleName /)[info]定义*: shellPrompt [info]没有任何设置或任务将使用新值.[info]重新应用设置... [info]将当前项目设置为SimpleName(在构建文件中:/ Users/Nedim/development/webfonts811/SimpleName /)[info]定义/:sbtStructureOutputFile [info]新值将由没有设置或任务.[info]重新应用设置... [info]将当前项目设置为SimpleName(在构建文件中:/ Users/Nedim/development/webfonts811/SimpleName /)[info]定义/:sbtStructureOptions [info]新值将由没有设置或任务.[info]重新应用设置... [info]将当前项目设置为SimpleName(在构建文件中:/ Users/Nedim/development/webfonts811/SimpleName /)[info]从/ Users /应用状态转换org.jetbrains.sbt.CreateTasks Nedim/Library/Application Support/IntelliJIdea15/Scala/launcher/sbt-structure-0.13.jar [info]将当前项目设置为SimpleName(在构建文件中:/ Users/Nedim/development/webfonts811/SimpleName /)[info] Updating { file:/ Users/Nedim/development/webfonts811/SimpleName /} simplename ... [info]解析org.scala-lang #scala-library; 2.11.8 ... [info]解析org.scallatest#scalatest_2.11; 2.2.6 ... [info]解析org.scallatest#scalatest_2.11; 2.2.6 ... [warn]模块未找到:org.scallatest#scalatest_2.11; 2.2.6 [warn] ==== local :试过[warn] /Users/Nedim/.ivy2/local/org.scallatest/scalatest_2.11/2.2.6/ivys/ivy.xml [warn] ==== jcenter:试过[warn] https:// jcenter .bintray.com/org/scallatest/scalatest_2.11/2.2.6/scalatest_2.11-2.2.6.pom [warn] ==== public:试过[warn] https:// repo 1.maven.org/maven2/org/scallatest/scalatest_2.11/2.2.6/scalatest_2.11-2.2.6.pom [info]解析org.scala-lang #scala-compiler; 2.11.8 ...... [ info]解析org.scala-lang#scala-reflect; 2.11.8 ... [info]解析org.scala-lang.modules#scala-xml_2.11; 1.0.4 ... [info]解析org.scala …

intellij-idea sbt scalatest

2
推荐指数
1
解决办法
1902
查看次数

如何检查Failure [T]中包含哪个异常?

我想知道Try使用ScalaTest 检查失败内容的最佳方法。我目前正在做的事情看起来像这样:

"Subject" should "throw proper exceptions.." in {
  a[IllegalArgumentException] should be thrownBy {
    val tryValue = // some method call..
    if (tryValue.isFailure) throw tryValue.failed.get
  }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我只是打开了异常并手动将其抛出。是否有更惯用的方式来实现同一目标?

scala scalatest

2
推荐指数
1
解决办法
272
查看次数

ScalaMock与scalatest

我是scalatest和scalamock的新手.这是我在sbt文件中的内容

name := "cakepattern"
version := "0.1"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
  "org.scalatest" %% "scalatest" % "3.0.0" % "test",
  "org.scalamock" %% "scalamock-core" % "3.1.1" % "test",
  "org.scalamock" %% "scalamock-scalatest-support" % "3.1.1" % "test",
  "org.scalacheck" %% "scalacheck" % "1.13.0" % "test"
)
Run Code Online (Sandbox Code Playgroud)

这是一个我试图嘲笑的课程

package config

import dto.User
import services.AuthServiceComponent
import org.scalatest.mockito.MockitoSugar._
import services.impl.DefaultUserAuthServiceComponent


trait MockAuthServiceComponent extends AuthServiceComponent{

  val x = mock[AuthServiceLike]

  type AuthService = x.type
  override val userAuthService = x
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,sbt test:compile我得到以下错误

[error] missing or invalid dependency …
Run Code Online (Sandbox Code Playgroud)

scala scalatest scalamock

2
推荐指数
1
解决办法
2014
查看次数

scalac:错误:要求失败:程序包存根

我正在使用scala 2.12。这是我的build.sbt文件

libraryDependencies ++= Seq(
   "net.codingwell" %% "scala-guice" % "4.1.0",
   "org.scalatest" %% "scalatest" % "3.0.3" % "test",
   "org.scalamock" %% "scalamock-scalatest-support" % "3.5.0" % "test"
)
Run Code Online (Sandbox Code Playgroud)

我正在尝试为Guice编写一个测试模块,该模块也使用Mocking

我试过了

class TestModule extends ScalaModule with MockitoSugar{
   val x = mock[TestPartialMock]
   override def configure(): Unit = {
      bind[Test1]
      bind[Test2]
   }
}
Run Code Online (Sandbox Code Playgroud)

我得到了错误

Error:scalac: Error: requirement failed: package stubbing
java.lang.IllegalArgumentException: requirement failed: package stubbing
    at scala.reflect.internal.Types$ModuleTypeRef.<init>(Types.scala:1879)
    at scala.reflect.internal.Types$PackageTypeRef.<init>(Types.scala:1897)
    at scala.reflect.internal.Types$TypeRef$.apply(Types.scala:2401)
    at scala.reflect.internal.Types.typeRef(Types.scala:3553)
    at scala.reflect.internal.Types.typeRef$(Types.scala:3536)
    at scala.reflect.internal.SymbolTable.typeRef(SymbolTable.scala:16)
    at s
Run Code Online (Sandbox Code Playgroud)

我也试过

class TestModule extends AbstractModule with ScalaModule …
Run Code Online (Sandbox Code Playgroud)

scala mockito scalatest

2
推荐指数
1
解决办法
1240
查看次数

scalatest-无法扩展由早期版本的Scala编译的宏

因此,我们有一个Scala程序(使用Maven构建),我们想使用Scalatest进行测试。我们正在运行Scala 2.11.8和Scalatest 3.0.1(我们尝试了3.0.3无济于事)

当我们的测试使用assert()宏运行任何内容时,我们将收到以下错误:

error: can't expand macros compiled by previous versions of Scala
       assert(true)
              ^
Run Code Online (Sandbox Code Playgroud)

它指向,true但是问题在于我们放入的任何内容assert()。我们的POM对Scalatest具有以下依赖性:

<dependency>
    <groupId>org.scalatest</groupId>
    <artifactId>scalatest_2.11</artifactId>
    <version>3.0.1</version>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我们试图执行的代码是:

import org.scalatest.{FlatSpec, _}
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner


@RunWith(classOf[JUnitRunner])
class Testing extends FlatSpec {
  //test
  var number = 0;
  "An empty Set" should "have size 0" in {
    assert(true)

  }
}
Run Code Online (Sandbox Code Playgroud)

很多人说这是使用Scala 2.11的问题,但包括2.10依赖项,但我们使用的是2.11。任何帮助将非常感激。我还应该注意,我们使用Scala 2.10进行了尝试,并且可以正常工作。

scala maven scalatest

2
推荐指数
1
解决办法
1901
查看次数

当在FunSuite中的测试函数外部使用SharedSparkContext(sc)时,是什么导致NullPointerException?

以下scala代码工作正常,测试运行:

import org.scalatest._
import com.holdenkarau.spark.testing._

class DummyTest extends FunSuite with SharedSparkContext {
   test("shared context only works inside test functions.") {
     val myRDD = sc.parallelize(List(1,2,3,4))
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,以下scala代码导致sc.parallelize行上的java.lang.NullPointerException:

import org.scalatest._
import com.holdenkarau.spark.testing._

class DummyTest extends FunSuite with SharedSparkContext {
   val myRDD = sc.parallelize(List(1,2,3,4))
   test("shared context only works inside test functions.") {
      assert(true)
   }
}
Run Code Online (Sandbox Code Playgroud)

在测试函数之外使用SparkContext时,导致NullPointerException的原因是什么?

scala scalatest apache-spark

2
推荐指数
1
解决办法
450
查看次数