Specs2 "in is not a member of String"

I am unable to compile a 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] The element '/ home / ~~~~ / workspaces / ~~~~ / build / resources / main' does not exist.
[ant: scalac] /home/~~~~works/~~~~/src/test/scala/com/~~~~/ingestion/SampleTest.scala:16: error: in is not a member of String
[ant : scalac] "contains 11 characters"
one error was found in { [ant: scalac]
: compileTestScala FAILED

I am 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) 
        }
    }
}

      

+3


source to share


2 answers


you need to extend org.specs2.mutable.Specification

instead org.specs2.Specification

for this syntax.



+12


source


If you want a trait use org.specs2.mutable.SpecificationLike



+1


source







All Articles