Skip to content

Commit 252f447

Browse files
brianrourkebollkurtschelfthout
authored andcommitted
Add replay hint to failure message
1 parent 1fd1bed commit 252f447

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/FsCheck/Runner.fs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -499,9 +499,12 @@ module Runner =
499499
| 1 -> sprintf "Label of failing property: %s%s" (labelsToString l) newline
500500
| _ -> sprintf "Labels of failing property (one or more is failing):%s%s%s" newline (labelsToString l) newline
501501

502-
let onFailureToString name data originalArgs args usedSeed lastSeed lastSize =
503-
sprintf "%sFalsifiable, after %i test%s (%i shrink%s) (%A)%sLast step was invoked with size of %i and seed of (%A):%s"
504-
name data.NumberOfTests (pluralize data.NumberOfTests) data.NumberOfShrinks (pluralize data.NumberOfShrinks) usedSeed newline lastSize lastSeed newline
502+
let onFailureToString name data originalArgs args usedSeed (lastSeed:Rnd) lastSize =
503+
let replayHint =
504+
if data.NumberOfTests > 1 then $".%s{newline}Replay directly at failing step with (%d{lastSeed.Seed},%d{lastSeed.Gamma},%d{lastSize})."
505+
else ":"
506+
507+
$"%s{name}Falsifiable, after %i{data.NumberOfTests} test%s{pluralize data.NumberOfTests} (%i{data.NumberOfShrinks} shrink%s{pluralize data.NumberOfShrinks}) (%A{usedSeed}). %s{newline}Last step was invoked with size of %i{lastSize} and seed of (%A{lastSeed})%s{replayHint}%s{newline}"
505508
+ maybePrintLabels data.Labels
506509
+ sprintf "Original:%s%s%s" newline (argumentsToString originalArgs) newline
507510
+ if (data.NumberOfShrinks > 0 ) then sprintf "Shrunk:%s%s%s" newline (argumentsToString args) newline else ""

0 commit comments

Comments
 (0)