标签: scalatest

使用FlatSpec,Selenium DSL和Spring进行ParallelTestExecution

我正在使用Scalatest,FlatSpec,Spring,Selenium DSL和BeforeAndAfterAll.其中一件事似乎阻止ParallelTestExecution正常工作.当我运行一个带有两个测试的类时会发生这种情况:

  1. 一个浏览器打开并做一些前所有的东西(但不是春天的东西)
  2. 另一个浏览器打开并执行beforeAll的东西
  3. 第二个浏览器用于第一次测试然后关闭
  4. 另一个浏览器打开并在所有东西之前进行第二次测试
  5. 第一和第三个浏览器关闭

所以基本上测试运行与没有ParallelTestExecution完全相同,只是打开了一个额外的窗口?

selenium scalatest

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

Eclipse中的ScalaTest:运行它会产生NullPointer异常

编辑:这个问题是sbteclipse的一个错误,并已修复

当我右键单击ScalaTest套件并选择Run as ScalaTest File时,我得到一个NullPointer异常.

  • 作为插件,我有Scala IDE for Scala IDE 2.9.3.v-3-2_09-201309130843-55f5c32
  • 作为我库中的jar,我有scalatest_2.9.0-2.0.M5b.jar(尝试过scalatest_2.9.3-RC2-2.0.M5b.jar)
  • 测试在SBT进行

问题:如果它是jar和插件之间的Scalatest兼容性问题,我如何获得与插件匹配的相应jar?我在这里看了https://oss.sonatype.org/content/groups/public/org/scalatest/但我不知道选哪一个.

java.lang.NullPointerException位于scala.collection.mutable.mq上的scala.collection.mutable.ArrayOps $ ofRef.length(ArrayOps.scala:115)scala.collection.SeqLike $ class.size(SeqLike.scala:100)scala.collection.mutable.ArrayOps. scala.collection.mlection.mlection上面的scala.collection.mutable.Builder $ class.sizeHint(Builder.scala:69)的大小(ArrayOps.scala:38)scala.collection.mutable.ArrayBuilder.sizeHint(ArrayBuilder.scala:23)at scala.collection.TraversableLike scala.tolection.eclipse.scalatest.launching.ScalaTestLaunchDelegate.launchScalaTest(ScalaTestLaunchDelegate.scala:103)中scala.collection.mutable.ArrayOps.map(ArrayOps.scala:38)的$ class.map(TraversableLike.scala:232)at scala.tools.eclipse.scalatest.launching.ScalaTestLaunchDelegate.launch(ScalaTestLaunchDelegate.scala:161)at or.e.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854)org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)org.eclipse的org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:937) .debug.internal.ui.DebugUIPlugin $ 8.run(DebugUIPlugin.java:1141)org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

其他详情:

eclipse.buildId=M20120208-0800
java.version=1.7.0_40
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_CA
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os linux -ws gtk -arch x86 -product org.eclipse.epp.package.jee.product
Run Code Online (Sandbox Code Playgroud)

eclipse scalatest

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

Gen.choose()和.oneOf()的输出

运行以下测试时,Gen()将打印出两个println语句.

根据ScalaCheck 文档,我希望输出为:

(号码,号码)

"你好"或"世界"

class TestScalaCheck extends FlatSpec {

    @author first test - https://github.com/rickynils/scalacheck/wiki/User-Guide
    "a test" should "print out Gen.choose(1, 100)" in {
        val myGen = for {
          n <- Gen.choose(10,20)
          m <- Gen.choose(2*n, 500)
        } yield (n,m)

        println(myGen)

        val c = Gen.oneOf("Hello", "World")
        println(c)
    }
}
Run Code Online (Sandbox Code Playgroud)

scala scalatest scalacheck

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

通过设置/限制参数,可以在外部"扩展"密封的Scala类吗?

我正在考虑使用Scalactic的" Or ",其定义为:

sealed abstract class Or[+G,+B] ...
Run Code Online (Sandbox Code Playgroud)

但我想声明一个设置B的子类,如:

class MyOr[G] extends Or[G,MyBadness] {}
Run Code Online (Sandbox Code Playgroud)

这将在我的项目中无处不在地使用.请注意,这个班级没有身体; 它的唯一目的是设置类型参数.

除了通常的隐式转换/包装器黑客之外,还有什么方法可以做到这一点吗?

scala scalatest

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

您可以从输入数据动态生成 ScalaTest 的测试名称吗?

我有许多通过相同 ScalaTest 单元测试运行的测试数据集。如果每个测试数据集都是它自己的一组命名测试,我会很高兴,所以如果一个数据集在其中一个测试中失败,我确切地知道它是哪一个,而不是去单个测试并查看它失败的文件。我似乎无法找到在运行时生成测试名称的方法。我看过基于属性和表的测试,目前正在使用should behave like共享装置,但这些似乎都没有做我想要的。

我是不是在 ScalaTest 中没有发现正确的测试方法,或者这是不可能的?

scala scalatest

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

无法使用GeneratorDrivenPropertyChecks启动测试

我想使用scalalatest scalacheck来测试一些具有随机输入值的对象.首先,我尝试了一个简单的示例,但如果我通过Eclipse或sbt启动它,则会抛出错误.代码是:

    package test

    import org.scalatest._
    import org.scalatest.prop.GeneratorDrivenPropertyChecks
    class SamplePropGenCheck extends PropSpec with GeneratorDrivenPropertyChecks with Matchers {

      property("Int simple test") {
        forAll("a")  { a : Int =>
          whenever (a > 0) {
            (a * 2) should be (a + a)
          }
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

在执行时,我有这个错误:

    *** RUN ABORTED ***
      java.lang.AbstractMethodError:
   org.scalatest.prop.Configuration$$anon$1.TestParams()Lorg/scalacheck/Test$Parameters$TestParams$;
      at org.scalacheck.Test$Parameters$class.$init$(Test.scala:98)
      at org.scalatest.prop.Configuration$$anon$1.<init>(Configuration.scala:332)
      at org.scalatest.prop.Configuration$class.getParams(Configuration.scala:332)
Run Code Online (Sandbox Code Playgroud)

我使用scalatest_2.11-2.2.1和scalacheck_2.11-1.12.3与scala 2.11.6

当我使用TableDrivenPropertyChecks而不是GeneratorDrivenPropertyChecks进行其他测试时,它运行良好.

我在docs或google中找不到任何帮助.是代码错误,错误还是版本问题?有人可以帮我找到解决方案吗?

scala scalatest scalacheck

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

SBT测试中的奇怪异常

我正面临 SBT(版本 0.13.9)的问题。我的 ScalaTest 测试之一失败了不确定性EOFException

堆栈跟踪:

Exception in thread "Thread-155" Exception in thread "Thread-159" java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2601)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at sbt.React.react(ForkTests.scala:114)
at sbt.ForkTests$$anonfun$mainTestTask$1$Acceptor$2$.run(ForkTests.scala:74)
at java.lang.Thread.run(Thread.java:745)

java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2601)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1$React.react(Framework.scala:953)
at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1.run(Framework.scala:942)
at java.lang.Thread.run(Thread.java:745)

sbt.ForkMain 59974 failed with exit code 134
Run Code Online (Sandbox Code Playgroud)

我没有看到任何 JVM 日志或线程转储。

scala sbt scalatest

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

Scala:如何在Intellij中创建单元测试用例

你能帮助我在IntelliJ中为Scala创建单元测试用例吗?

我尝试使用意图动作创建它,但它并不适合我.我也检查了设置的意图.一切看起来都不错.

我们对Scala有不同的处理方式,还是我错过了什么?

scala scalatest

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

Scala 中类似于 Groovy 的“Power assert”之类的东西?

我想知道是否有什么东西可以给我类似于 Groovy 的 nice power assert 语句的结果。

> assert ["1", '2']*.size() == [2, 3]

Result: Assertion failed: 

assert ["1", '2']*.size() == [2, 3]
                   |      |
                   [1, 1] false
Run Code Online (Sandbox Code Playgroud)

AFAIKscalatest我目前使用的语言和 . 但也许有人可以建议一些辅助图书馆这样做?这是一个宠物项目,所以实验性的和没有得到很好支持的库是可以的。

编辑:我知道匹配器(scalatest 的,甚至是普通的 java hamcrest 匹配器)。我发现他们写起来很冗长,而且他们的输出缺乏细节。

上面的示例显示了中间计算步骤,有助于检测错误。它向您展示了经过测试的代码有什么问题,并提供了更多详细信息。

我希望,引入这种行为需要在运行时获得有关表达式 AST 的信息。但我想,这些信息可以通过使用宏来“烘焙”编译时间。

即,如果我们有表达式assert a + b == cscala(或我正在寻找的一些宏扩展)可以将其重写为:

if (!(a + b == c)) {
  // detailed message is
  // compute a
  // compute b
  // compute a + b
  // compute c
  // compute a + …
Run Code Online (Sandbox Code Playgroud)

groovy assert scala scalatest

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

Scalatest中的方案大纲

我正在使用scalatest实现我的测试框架,我认为使用该框架而不是Cucumber犯了一个错误

我正在尝试使用一些类似Scenario outline黄瓜的功能,以免造成DRY断裂

这是我的问题

  feature("Features of mus client") {
    scenario("GET message with mus client") {
      Given("a Musin message")
      val config: Properties = new Properties
      config.put("method", "POST")
      config.put("encoding", "UTF-8")
      config.put("uri", "http://localhost:9083/musClient")
      When("I make a request to f2e")
      val response = HttpClientTest.request(config, createJSON(READ))
      Then("The message it´s returned successfully")
      assert(response != null)
    }

    scenario("POST message with mus client") {
      Given("a Musin message")
      val config: Properties = new Properties
      config.put("method", "POST")
      config.put("encoding", "UTF-8")
      config.put("uri", "http://localhost:9083/musClient")
      When("I make a request to f2e")
      val …
Run Code Online (Sandbox Code Playgroud)

scala cucumber scalatest

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

标签 统计

scalatest ×10

scala ×8

scalacheck ×2

assert ×1

cucumber ×1

eclipse ×1

groovy ×1

sbt ×1

selenium ×1