Scalatest, PlaySpec and Scalacheck integration

117 views
Skip to first unread message

Brendan Maguire

unread,
Feb 12, 2016, 10:32:48 AM2/12/16
to scalatest-users
Hi,

I am having trouble getting scalacheck and playspec working together. I'm very new to Scala but I'm guessing it is some problem with what WordSpec wants failing tests to return. Here is the code:

package controllers


import org.scalacheck.Prop.forAll
import org.scalatestplus.play.{OneAppPerSuite, PlaySpec}
import org.scalatest.Matchers
import org.scalacheck.Gen
import org.scalatest.prop.GeneratorDrivenPropertyChecks


class Simple extends PlaySpec with OneAppPerSuite with GeneratorDrivenPropertyChecks {

 
"Simple suite" must {
   
"simple test" in forAll(Gen.choose(1, 2)) { i =>
      i must be
(1)
   
}
 
}

}


And here is the stack trace I'm getting:

[info] Simple:
[info] - play.api.libs.concurrent.ActorSystemProvider - Starting application default Akka system: application
[info] Simple suite
[info] - must simple test *** FAILED ***
[info]   TestFailedException was thrown during property evaluation.
[info]     Message: 2 was not equal to 1
[info]     Location: (Simple.scala:13)
[info]     Occurred when passed generated values (
[info]       arg0 = 2
[info]     )
Exception in thread "Thread-185" java.lang.ClassCastException: cannot assign instance of scala.collection.immutable.List$SerializationProxy to field org.scalatest.prop.Checkers$$anonfun$doCheck$3.scalaCheckArgs$2 of type scala.collection.immutable.List in instance of org.scalatest.prop.Checkers$$anonfun$doCheck$3
 at java
.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2133)
 at java
.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1305)
 at java
.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2006)
 at java
.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
 at java
.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
 at java
.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
 at java
.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
 at java
.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
 at java
.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
 at java
.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
 at java
.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
 at java
.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
 at java
.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
 at java
.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
 at java
.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
 at java
.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
 at java
.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
 at java
.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
 at java
.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
 at java
.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
 at java
.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
 at java
.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
 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)
Reporter completed abruptly with an exception after receiving event: ScopeClosed(Ordinal(0, 5),Simple suite,NameInfo(Simple,controllers.Simple,Some(controllers.Simple),None),Some(MotionToSuppress),Some(LineInFile(11,Simple.scala)),None,pool-1-thread-1-ScalaTest-running-Simple,1455274797354).
java
.net.SocketException: Broken pipe
 at java
.net.SocketOutputStream.socketWrite0(Native Method)
 at java
.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
 at java
.net.SocketOutputStream.write(SocketOutputStream.java:153)
 at java
.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1877)
 at java
.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1786)
 at java
.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1286)
 at java
.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1231)
 at java
.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1427)
 at java
.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
 at java
.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1577)
 at java
.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:351)
 at org
.scalatest.tools.SocketReporter.apply(SocketReporter.scala:31)
 at org
.scalatest.DispatchReporter$Propagator$$anonfun$run$1.apply(DispatchReporter.scala:240)
 at org
.scalatest.DispatchReporter$Propagator$$anonfun$run$1.apply(DispatchReporter.scala:239)
 at scala
.collection.immutable.List.foreach(List.scala:381)
 at org
.scalatest.DispatchReporter$Propagator.run(DispatchReporter.scala:239)
 at java
.lang.Thread.run(Thread.java:745)
[info] - play.api.libs.concurrent.ActorSystemProvider - Shutdown application default Akka system: application
Reporter completed abruptly with an exception after receiving event: SuiteCompleted(Ordinal(0, 6),Simple,controllers.Simple,Some(controllers.Simple),Some(1624),Some(MotionToSuppress),Some(TopOfClass(controllers.Simple)),None,None,pool-1-thread-1,1455274797416).
java
.net.SocketException: Broken pipe
 at java
.net.SocketOutputStream.socketWrite0(Native Method)
 at java
.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
 at java
.net.SocketOutputStream.write(SocketOutputStream.java:153)
 at java
.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1877)
 at java
.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1786)
 at java
.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1286)
 at java
.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1231)
 at java
.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1427)
 at java
.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
 at java
.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1577)
 at java
.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:351)
 at org
.scalatest.tools.SocketReporter.apply(SocketReporter.scala:31)
 at org
.scalatest.DispatchReporter$Propagator$$anonfun$run$1.apply(DispatchReporter.scala:240)
 at org
.scalatest.DispatchReporter$Propagator$$anonfun$run$1.apply(DispatchReporter.scala:239)
 at scala
.collection.immutable.List.foreach(List.scala:381)
 at org
.scalatest.DispatchReporter$Propagator.run(DispatchReporter.scala:239)
 at java
.lang.Thread.run(Thread.java:745)
Reporter completed abruptly with an exception after receiving event: RunCompleted(Ordinal(0, 7),Some(1893),Some(Summary(0,1,0,0,0,1,0,0)),None,None,None,main,1455274797442).
java
.net.SocketException: Broken pipe
 at java
.net.SocketOutputStream.socketWrite0(Native Method)
 at java
.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
 at java
.net.SocketOutputStream.write(SocketOutputStream.java:153)
 at java
.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1877)
 at java
.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1786)
 at java
.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1286)
 at java
.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1231)
 at java
.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1427)
 at java
.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
 at java
.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1577)
 at java
.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:351)
 at org
.scalatest.tools.SocketReporter.apply(SocketReporter.scala:31)
 at org
.scalatest.DispatchReporter$Propagator$$anonfun$run$1.apply(DispatchReporter.scala:240)
 at org
.scalatest.DispatchReporter$Propagator$$anonfun$run$1.apply(DispatchReporter.scala:239)
 at scala
.collection.immutable.List.foreach(List.scala:381)
 at org
.scalatest.DispatchReporter$Propagator.run(DispatchReporter.scala:239)
 at java
.lang.Thread.run(Thread.java:745)
Reporter completed abruptly with an exception on invocation of the dispose method.
java
.net.SocketException: Broken pipe
 at java
.net.SocketOutputStream.socketWrite0(Native Method)
 at java
.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
 at java
.net.SocketOutputStream.write(SocketOutputStream.java:153)
 at java
.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1877)
 at java
.io.ObjectOutputStream$BlockDataOutputStream.flush(ObjectOutputStream.java:1822)
 at java
.io.ObjectOutputStream.flush(ObjectOutputStream.java:719)
 at org
.scalatest.tools.SocketReporter.dispose(SocketReporter.scala:37)
 at org
.scalatest.DispatchReporter$.propagateDispose(DispatchReporter.scala:312)
 at org
.scalatest.DispatchReporter$Propagator$$anonfun$run$2.apply(DispatchReporter.scala:251)
 at org
.scalatest.DispatchReporter$Propagator$$anonfun$run$2.apply(DispatchReporter.scala:250)
 at scala
.collection.immutable.List.foreach(List.scala:381)
 at org
.scalatest.DispatchReporter$Propagator.run(DispatchReporter.scala:250)
 at java
.lang.Thread.run(Thread.java:745)
[info] ScalaTest
[info] Run completed in 2 seconds, 491 milliseconds.
[info] Total number of tests run: 0
[info] Suites: completed 0, aborted 0
[info] Tests: succeeded 0, failed 0, canceled 0, ignored 0, pending 0
[info] No tests were executed.
[error] Failed: Total 1, Failed 1, Errors 0, Passed 0
[error] Failed tests:
[error] controllers.Simple
[error] (test:test) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 3 s, completed 12-Feb-2016 10:59:57

Any help would be greatly appreciated!

Thanks,
Brendan
Reply all
Reply to author
Forward
0 new messages