-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathReporter.elm
52 lines (41 loc) · 1.43 KB
/
Reporter.elm
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
module Test.Reporter.Reporter exposing (Report(..), RunInfo, TestReporter, createReporter)
import Console.Text exposing (UseColor)
import Json.Encode exposing (Value)
import Test.Reporter.Console as ConsoleReporter
import Test.Reporter.JUnit as JUnitReporter
import Test.Reporter.Json as JsonReporter
import Test.Reporter.TestResults exposing (SummaryInfo, TestResult)
type Report
= ConsoleReport UseColor
| JsonReport
| JUnitReport
type alias TestReporter =
{ format : String
, reportBegin : RunInfo -> Maybe Value
, reportComplete : TestResult -> Value
, reportSummary : SummaryInfo -> Maybe String -> Value
}
type alias RunInfo =
{ paths : List String
, fuzzRuns : Int
, testCount : Int
, initialSeed : Int
}
createReporter : Report -> TestReporter
createReporter report =
case report of
JsonReport ->
TestReporter "JSON"
JsonReporter.reportBegin
JsonReporter.reportComplete
JsonReporter.reportSummary
ConsoleReport useColor ->
TestReporter "CHALK"
(ConsoleReporter.reportBegin useColor)
(ConsoleReporter.reportComplete useColor)
(ConsoleReporter.reportSummary useColor)
JUnitReport ->
TestReporter "JUNIT"
JUnitReporter.reportBegin
JUnitReporter.reportComplete
JUnitReporter.reportSummary