Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Specs2 "value in is not a member of String"

I cannot compile the simple specs2 hello world example:

import org.junit.runner.RunWith
import org.specs2.Specification
import org.specs2.runner.JUnitRunner

import org.specs2.mutable._

@RunWith(classOf[JUnitRunner])
class SampleTest extends Specification {

  "The 'Hello world' string" should {
    "contain 11 characters" in {
      "Hello world" must have size(11)
    }
    "start with 'Hello'" in {
      "Hello world" must startWith("Hello")
    }
    "end with 'world'" in {
      "Hello world" must endWith("world")
    }
  }
}

Getting error:

:compileTestScala [ant:scalac] Element '/home/~~~~/workspaces/~~~~/build/resources/main' does not exist.
[ant:scalac] /home/~~~~/workspaces/~~~~/src/test/scala/com/~~~~/ingestion/SampleTest.scala:16: error: value in is not a member of String
[ant:scalac] "contain 11 characters" in {
[ant:scalac] one error found
:compileTestScala FAILED

I'm using Gradle (hence the @RunWith annotation). Using specs2 version 'org.specs2:specs2_2.10:2.4.15'

apply plugin: 'java'
apply plugin: 'scala'

repositories {
    mavenCentral()
    maven {
        url "http://dl.bintray.com/scalaz/releases"
    }
}

configurations {
    provided
    compile.extendsFrom provided
}

dependencies {
    provided 'org.apache.hadoop:hadoop-client:2.2.0'

    compile 'org.scala-lang:scala-library:2.10.0',
            'com.twitter:scalding-core_2.10:0.12.0',
            'com.github.scopt:scopt_2.10:3.2.0',
            'org.json4s:json4s-jackson_2.10:3.2.11',

            'args4j:args4j:2.0.29',
            'joda-time:joda-time:2.4',
            'log4j:log4j:1.2.17',
            'org.apache.commons:commons-compress:1.9',
            'org.apache.commons:commons-lang3:3.3.2',
            'org.codehaus.jackson:jackson-core-asl:1.9.13'


    testCompile 'junit:junit:4.11',
                'org.mockito:mockito-all:1.9.5',
                'org.specs2:specs2_2.10:2.4.15'
}

jar {
    dependsOn configurations.runtime
    from {
        (configurations.compile - configurations.provided).collect {
            it.isDirectory() ? it : zipTree(it) 
        }
    }
}
like image 496
Upio Avatar asked Dec 04 '22 04:12

Upio


2 Answers

you need to extend org.specs2.mutable.Specification instead of org.specs2.Specification for that syntax.

like image 186
stew Avatar answered Dec 15 '22 21:12

stew


If you need a trait, use org.specs2.mutable.SpecificationLike

like image 41
Kumar Avatar answered Dec 15 '22 21:12

Kumar