Mam Play Framework 2.3 projekt, w którym chciałbym rozdzielić testów jednostkowych i testów funkcjonalnych następująco:Dlaczego testy integracji w projekcie Play/Scala nie są wykonywane, gdy używasz "sbt it: test"?
- działa
sbt test
powinien przeprowadzić testy jednostkowe i uwzględniają wszystkie testy integracyjne - działa
sbt it:test
powinien działać tylko testy integracyjne
dokumentacja Scala sugeruje użycie project/Build.scala
, ale chciałbym użyć kombinacji build.sbt
i project/Build.scala
, więc moja konfiguracja wygląda tak (mam al tak próbował oddanie wszystkich konfiguracji w Build.scala
):
build.sbt
....
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-json" % "2.2.3",
"org.scalatest" %% "scalatest" % "2.1.5" % "it, test",
"org.mockito" % "mockito-all" % "1.9.5" % "it, test"
)
def funTestFilter(name: String): Boolean = ((name endsWith "ItTest") || (name endsWith "IntegrationTest"))
def unitTestFilter(name: String): Boolean = ((name endsWith "Test") && !funTestFilter(name))
testOptions in IntegrationTest := Seq(Tests.Filter(funTestFilter))
testOptions in Test := Seq(Tests.Filter(unitTestFilter))
projekt/Build.scala
import sbt._
object Build extends Build {
lazy val root =
Project("root", file("."))
.configs(IntegrationTest)
.settings(Defaults.itSettings : _*)
}
ramach tej konfiguracji działa sbt test
wyklucza mój test integracyjny (co kończy się IntegrationTest
), ale uruchomienie sbt it:test
nie znajduje żadnych testów.
Artykuł sugeruje umieszczanie plików w określonej ścieżce, ale nie wiem, jaka jest równoważna ścieżka dla projektu Play.
Standardowo stosuje się hierarchia źródło:
src/it/scala for Scala sources
src/it/java for Java sources
src/it/resources for resources that should go on the integration test classpath
Dzięki !!!. Mój projekt nie wie, czym jest "PlayScala", jest to błąd, który dostaję: "/web/api-checkout/build.sbt:28: błąd: nie znaleziono: wartość PlayScala", jednak wydaje się działać bez niego , Nie wiem, jakie problemy mogą powodować, ale nie znalazłem jeszcze żadnych problemów. – Mike
Korzystając z gry 2.3.9, podążyłem za przykładami, ale moja IntegrationSpec.scala nie może się skompilować, ponieważ nie może znaleźć PlaySpecification, np. Klasa IntegrationSpec rozszerza PlaySpecification. Czy jest jakiś pomysł, dlaczego SBT nie uwzględniało bibliotek gier w fazie "to"? Ponadto dodałem to do build.sbt, "org.specs2" %% "specs2-core"% "3.5"% "it, test", "org.specs2" %% "specs2-junit"% " 3.5 "%" it, test ", " org.specs2 "%%" specs2-mock "%" 3,5 "%" it, test " Dzięki – thlim
ok Dodałem test do" go ", tj." Com.typesafe .play "%%" play-test "%" 2.3.9 "%" it " – thlim