我正在使用Scalatest,FlatSpec,Spring,Selenium DSL和BeforeAndAfterAll.其中一件事似乎阻止ParallelTestExecution正常工作.当我运行一个带有两个测试的类时会发生这种情况:
所以基本上测试运行与没有ParallelTestExecution完全相同,只是打开了一个额外的窗口?
编辑:这个问题是sbteclipse的一个错误,并已修复
当我右键单击ScalaTest套件并选择Run as ScalaTest File时,我得到一个NullPointer异常.
问题:如果它是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) 运行以下测试时,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) 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)
这将在我的项目中无处不在地使用.请注意,这个班级没有身体; 它的唯一目的是设置类型参数.
除了通常的隐式转换/包装器黑客之外,还有什么方法可以做到这一点吗?
我有许多通过相同 ScalaTest 单元测试运行的测试数据集。如果每个测试数据集都是它自己的一组命名测试,我会很高兴,所以如果一个数据集在其中一个测试中失败,我确切地知道它是哪一个,而不是去单个测试并查看它失败的文件。我似乎无法找到在运行时生成测试名称的方法。我看过基于属性和表的测试,目前正在使用should behave like共享装置,但这些似乎都没有做我想要的。
我是不是在 ScalaTest 中没有发现正确的测试方法,或者这是不可能的?
我想使用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中找不到任何帮助.是代码错误,错误还是版本问题?有人可以帮我找到解决方案吗?
我正面临 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 日志或线程转储。
你能帮助我在IntelliJ中为Scala创建单元测试用例吗?
我尝试使用意图动作创建它,但它并不适合我.我也检查了设置的意图.一切看起来都不错.
我们对Scala有不同的处理方式,还是我错过了什么?
我想知道是否有什么东西可以给我类似于 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) 我正在使用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)