@@ -7,19 +7,22 @@ import Project.Initialize
7
7
/**
8
8
* @author Chris Turner
9
9
*/
10
- object CucumberPlugin extends Plugin with CucumberIntegration with CucumberDependencies {
10
+ object CucumberPlugin extends Plugin with CucumberIntegration {
11
+
12
+ private val CucumberVersionForScala2_9 = " 1.0.9"
13
+ private val CucumberVersionForScala2_10 = " 1.0.10"
11
14
12
15
type LifecycleCallback = () => Unit
13
16
14
17
val cucumber = InputKey [Int ](" cucumber" )
15
18
val cucumberTestSettings = TaskKey [CucumberSettings ](" cucumber-settings" )
16
19
val cucumberOptions = TaskKey [CucumberOptions ](" cucumber-options" )
17
20
18
- val cucumberVersion = SettingKey [String ](" cucumber-version" )
19
21
val cucumberMaxMemory = SettingKey [String ](" cucumber-max-memory" )
20
22
val cucumberMaxPermGen = SettingKey [String ](" cucumber-max-perm-gen" )
21
23
22
24
val cucumberFeaturesDir = SettingKey [File ](" cucumber-features-directory" )
25
+ val cucumberStepsBasePackage = SettingKey [String ](" cucumber-steps-base-package" )
23
26
val cucumberExtraOptions = SettingKey [Seq [String ]](" cucumber-extra-options" )
24
27
val cucumberMode = SettingKey [CucumberMode ](" cucumber-mode" )
25
28
val cucumberHtmlReportFile = SettingKey [File ](" cucumber-html-report" )
@@ -30,25 +33,30 @@ object CucumberPlugin extends Plugin with CucumberIntegration with CucumberDepen
30
33
(argTask, cucumberTestSettings, cucumberOptions, streams) map(testWithCucumber)
31
34
32
35
protected def cucumberSettingsTask : Initialize [Task [CucumberSettings ]] =
33
- (cucumberVersion, cucumberMaxMemory, cucumberMaxPermGen, fullClasspath in Test , streams) map {
34
- (v, mm, mpg, cp, s) => {
35
- CucumberSettings (v, mm, mpg, cp.toList.map(_.data), LoggedOutput (s.log))
36
+ (cucumberMaxMemory, cucumberMaxPermGen, fullClasspath in Test , streams) map {
37
+ (mm, mpg, cp, s) => {
38
+ CucumberSettings (mm, mpg, cp.toList.map(_.data), LoggedOutput (s.log))
36
39
}
37
40
}
38
41
39
42
protected def cucumberOptionsTask : Initialize [Task [CucumberOptions ]] =
40
- (cucumberFeaturesDir, classDirectory in Test , cucumberExtraOptions,
43
+ (cucumberFeaturesDir, cucumberStepsBasePackage , cucumberExtraOptions,
41
44
cucumberMode, cucumberHtmlReportFile, cucumberBefore, cucumberAfter) map {
42
- (fd, cd , o, m, htmlRF, bf, af) => {
43
- CucumberOptions (fd, cd , optionsForMode(m, htmlRF) ++ o, bf, af)
45
+ (fd, bp , o, m, htmlRF, bf, af) => {
46
+ CucumberOptions (fd, bp , optionsForMode(m, htmlRF) ++ o, bf, af)
44
47
}
45
48
}
46
49
47
50
private def defaultBefore () = {}
48
51
private def defaultAfter () = {}
49
52
53
+ private def cucumberVersion (scalaVersion : String ) =
54
+ if ( scalaVersion.startsWith(" 2.10" ) ) CucumberVersionForScala2_10 else CucumberVersionForScala2_9
55
+
50
56
val cucumberSettings = Seq (
51
- libraryDependencies ++= cucumberDependencies,
57
+ libraryDependencies <+= scalaVersion { sv =>
58
+ " info.cukes" % " cucumber-scala" % cucumberVersion(sv) % " test"
59
+ },
52
60
53
61
cucumber <<= inputTask(cucumberTask),
54
62
cucumberTestSettings <<= cucumberSettingsTask,
@@ -58,9 +66,9 @@ object CucumberPlugin extends Plugin with CucumberIntegration with CucumberDepen
58
66
59
67
cucumberMaxMemory := " 256M" ,
60
68
cucumberMaxPermGen := " 64M" ,
61
- cucumberVersion := " 1.0.9" ,
62
69
63
- cucumberFeaturesDir <<= (baseDirectory) { _ / " features" },
70
+ cucumberFeaturesDir <<= (baseDirectory) { _ / " src" / " test" / " features" },
71
+ cucumberStepsBasePackage := " " ,
64
72
cucumberHtmlReportFile <<= (target) { _ / " cucumber-report" / " cucumber.html" },
65
73
cucumberExtraOptions := List [String ](),
66
74
0 commit comments