@@ -17,23 +17,30 @@ object CucumberPlugin extends Plugin with CucumberIntegration {
17
17
val cucumber = InputKey [Int ](" cucumber" )
18
18
val cucumberTestSettings = TaskKey [CucumberSettings ](" cucumber-settings" )
19
19
val cucumberOptions = TaskKey [CucumberOptions ](" cucumber-options" )
20
+ val cucumberOutput = TaskKey [CucumberOutput ](" cucumber-output" )
20
21
21
22
val cucumberMaxMemory = SettingKey [String ](" cucumber-max-memory" )
22
23
val cucumberMaxPermGen = SettingKey [String ](" cucumber-max-perm-gen" )
23
24
24
25
val cucumberFeaturesDir = SettingKey [File ](" cucumber-features-directory" )
25
26
val cucumberStepsBasePackage = SettingKey [String ](" cucumber-steps-base-package" )
26
- val cucumberExtraOptions = SettingKey [Seq [String ]](" cucumber-extra-options" )
27
+ val cucumberExtraOptions = SettingKey [List [String ]](" cucumber-extra-options" )
27
28
28
- val cucumberHtmlReportDir = SettingKey [Option [File ]](" cucumber-html-report" )
29
- val cucumberJsonReportFile = SettingKey [Option [File ]](" cucumber-json-report" )
30
- val cucumberJunitReportFile = SettingKey [Option [File ]](" cucumber-junit-report" )
29
+ val cucumberPrettyReport = SettingKey [Boolean ](" cucumber-pretty-report" )
30
+ val cucumberHtmlReport = SettingKey [Boolean ](" cucumber-html-report" )
31
+ val cucumberJunitReport = SettingKey [Boolean ](" cucumber-junit-report" )
32
+ val cucumberJsonReport = SettingKey [Boolean ](" cucumber-json-report" )
33
+
34
+ val cucumberPrettyReportFile = SettingKey [File ](" cucumber-pretty-report-file" )
35
+ val cucumberHtmlReportDir = SettingKey [File ](" cucumber-html-report-dir" )
36
+ val cucumberJsonReportFile = SettingKey [File ](" cucumber-json-report-file" )
37
+ val cucumberJunitReportFile = SettingKey [File ](" cucumber-junit-report-file" )
31
38
32
39
val cucumberBefore = SettingKey [LifecycleCallback ](" cucumber-before" )
33
40
val cucumberAfter = SettingKey [LifecycleCallback ](" cucumber-after" )
34
41
35
42
protected def cucumberTask (argTask : TaskKey [Seq [String ]]) =
36
- (argTask, cucumberTestSettings, cucumberOptions, streams) map(testWithCucumber)
43
+ (argTask, cucumberTestSettings, cucumberOptions, cucumberOutput, streams) map(testWithCucumber)
37
44
38
45
protected def cucumberSettingsTask : Initialize [Task [CucumberSettings ]] =
39
46
(cucumberMaxMemory, cucumberMaxPermGen, fullClasspath in Test , streams) map {
@@ -44,10 +51,17 @@ object CucumberPlugin extends Plugin with CucumberIntegration {
44
51
45
52
protected def cucumberOptionsTask : Initialize [Task [CucumberOptions ]] =
46
53
(cucumberFeaturesDir, cucumberStepsBasePackage, cucumberExtraOptions,
47
- cucumberHtmlReportDir, cucumberJsonReportFile, cucumberJunitReportFile,
48
54
cucumberBefore, cucumberAfter) map {
49
- (fd, bp, o, htmlRD, jsonRF, junitRF, bf, af) => {
50
- CucumberOptions (fd, bp, optionsForReporting(htmlRD, jsonRF, junitRF) ++ o, bf, af)
55
+ (fd, bp, o, bf, af) => {
56
+ CucumberOptions (fd, bp, o, bf, af)
57
+ }
58
+ }
59
+
60
+ protected def cucumberOutputTask : Initialize [Task [CucumberOutput ]] =
61
+ (cucumberPrettyReport, cucumberHtmlReport, cucumberJunitReport, cucumberJsonReport,
62
+ cucumberPrettyReportFile, cucumberHtmlReportDir, cucumberJunitReportFile, cucumberJsonReportFile) map {
63
+ (pR, hR, juR, jsR, pRF, hRD, juRF, jsRF) => {
64
+ CucumberOutput (pR, hR, juR, jsR, pRF, hRD, juRF, jsRF)
51
65
}
52
66
}
53
67
@@ -65,6 +79,7 @@ object CucumberPlugin extends Plugin with CucumberIntegration {
65
79
cucumber <<= inputTask(cucumberTask),
66
80
cucumberTestSettings <<= cucumberSettingsTask,
67
81
cucumberOptions <<= cucumberOptionsTask,
82
+ cucumberOutput <<= cucumberOutputTask,
68
83
69
84
cucumberMaxMemory := " 256M" ,
70
85
cucumberMaxPermGen := " 64M" ,
@@ -73,9 +88,15 @@ object CucumberPlugin extends Plugin with CucumberIntegration {
73
88
cucumberStepsBasePackage := " " ,
74
89
cucumberExtraOptions := List [String ](),
75
90
76
- cucumberHtmlReportDir := None ,
77
- cucumberJsonReportFile := None ,
78
- cucumberJunitReportFile := None ,
91
+ cucumberPrettyReport := false ,
92
+ cucumberHtmlReport := false ,
93
+ cucumberJunitReport := false ,
94
+ cucumberJsonReport := false ,
95
+
96
+ cucumberPrettyReportFile <<= (scalaVersion, target) { (sv, t) => t / " scala-%s" .format(sv) / " cucumber.txt" },
97
+ cucumberHtmlReportDir <<= (scalaVersion, target) { (sv, t) => t / " scala-%s" .format(sv) / " cucumber-report" },
98
+ cucumberJsonReportFile <<= (scalaVersion, target) { (sv, t) => t / " scala-%s" .format(sv) / " cucumber.json" },
99
+ cucumberJunitReportFile <<= (scalaVersion, target) { (sv, t) => t / " scala-%s" .format(sv) / " cucumber.xml" },
79
100
80
101
cucumberBefore := defaultBefore,
81
102
cucumberAfter := defaultAfter
0 commit comments