-
Notifications
You must be signed in to change notification settings - Fork 160
Expand file tree
/
Copy pathCheckExtensions.fs
More file actions
60 lines (54 loc) · 3.06 KB
/
Copy pathCheckExtensions.fs
File metadata and controls
60 lines (54 loc) · 3.06 KB
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
50
51
52
53
54
55
56
57
58
59
60
namespace FsCheck.Xunit
open System
open System.Runtime.CompilerServices
open FsCheck
open Xunit.Abstractions
module private Helper =
let private runner (testOutputHelper: ITestOutputHelper) =
{ new IRunner with
member __.OnStartFixture t =
Runner.onStartFixtureToString t |> Helpers.safeWriteLine testOutputHelper
member __.OnArguments (ntest,args, every) =
every ntest args |> Helpers.safeWriteLine testOutputHelper
member __.OnShrink(args, everyShrink) =
everyShrink args |> Helpers.safeWriteLine testOutputHelper
member __.OnFinished(name,testResult) =
Runner.onFinishedToString name testResult |> Helpers.safeWriteLine testOutputHelper
}
let private throwingRunner (testOutputHelper: ITestOutputHelper) =
{ new IRunner with
member __.OnStartFixture t =
Helpers.safeWriteLine testOutputHelper (Runner.onStartFixtureToString t)
member __.OnArguments (ntest,args, every) =
Helpers.safeWriteLine testOutputHelper (every ntest args)
member __.OnShrink(args, everyShrink) =
Helpers.safeWriteLine testOutputHelper (everyShrink args)
member __.OnFinished(name,testResult) =
match testResult with
| TestResult.Passed _ -> Helpers.safeWriteLine testOutputHelper (Runner.onFinishedToString name testResult)
| _ -> failwithf "%s" (Runner.onFinishedToString name testResult)
}
let writeToXunit (config:Config) (testOutputHelper: ITestOutputHelper) =
config.WithRunner(runner testOutputHelper)
let writeToXunitThrow (config:Config) (testOutputHelper: ITestOutputHelper) =
config.WithRunner(throwingRunner testOutputHelper)
[<AbstractClass;Sealed;Extension>]
type CheckExtensions =
[<Extension>]
static member QuickCheck(property:Property, testOutputHelper: ITestOutputHelper) =
Check.One(Helper.writeToXunit Config.Quick testOutputHelper,property)
[<Extension>]
static member QuickCheck(property:Property, testName:string, testOutputHelper: ITestOutputHelper) =
Check.One(testName,Helper.writeToXunit Config.Quick testOutputHelper,property)
[<Extension>]
static member QuickCheckThrowOnFailure(property:Property, testOutputHelper: ITestOutputHelper) =
Check.One(Helper.writeToXunitThrow Config.QuickThrowOnFailure testOutputHelper,property)
[<Extension>]
static member VerboseCheck(property:Property, testOutputHelper: ITestOutputHelper) =
Check.One(Helper.writeToXunit Config.Verbose testOutputHelper, property)
[<Extension>]
static member VerboseCheck(property:Property, testName:string, testOutputHelper: ITestOutputHelper) =
Check.One(testName, Helper.writeToXunit Config.Verbose testOutputHelper, property)
[<Extension>]
static member VerboseCheckThrowOnFailure(property:Property, testOutputHelper: ITestOutputHelper) =
Check.One(Helper.writeToXunitThrow Config.VerboseThrowOnFailure testOutputHelper,property)