/
Parameters.scala
49 lines (42 loc) · 2.19 KB
/
Parameters.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package org.specs2
package scalacheck
import org.scalacheck.Test
import org.scalacheck.util.Pretty
import main.CommandLine
/**
* This class encapsulates ScalaCheck parameters + any additional parameters
*/
case class Parameters(minTestsOk: Int = Test.Parameters.default.minSuccessfulTests,
minSize: Int = Test.Parameters.default.minSize,
maxDiscardRatio: Float = Test.Parameters.default.maxDiscardRatio,
maxSize: Int = Test.Parameters.default.maxSize,
workers: Int = Test.Parameters.default.workers,
testCallback: Test.TestCallback = Test.Parameters.default.testCallback,
loader: Option[ClassLoader] = Test.Parameters.default.customClassLoader,
prettyParams: Pretty.Params = Pretty.defaultParams) { outer =>
def verbose: Parameters =
setVerbosity(1)
def setVerbosity(v: Int): Parameters =
copy(prettyParams = prettyParams.copy(verbosity = v))
def testParameters: Test.Parameters =
Test.Parameters.default.
withMinSuccessfulTests(outer.minTestsOk).
withMaxDiscardRatio(outer.maxDiscardRatio).
withMaxSize(outer.maxSize).
withMinSize(outer.minSize).
withWorkers(outer.workers).
withTestCallback(outer.testCallback).
withCustomClassLoader(outer.loader)
def overrideWith(commandLine: CommandLine): Parameters = {
val updated =
copy(
minTestsOk = commandLine.intOr ("scalacheck.mintestsok", minTestsOk),
minSize = commandLine.intOr ("scalacheck.minsize", minSize),
maxDiscardRatio = commandLine.floatOr("scalacheck.maxdiscardratio", maxDiscardRatio),
maxSize = commandLine.intOr ("scalacheck.maxsize", maxSize),
workers = commandLine.intOr ("scalacheck.workers", workers)
).setVerbosity( commandLine.intOr ("scalacheck.verbosity", prettyParams.verbosity))
if (commandLine.boolOr("scalacheck.verbose", false)) updated.verbose
else updated
}
}