Тесты не выполнялись (Play Framework) - PullRequest
0 голосов
/ 11 июня 2018

У меня проблема с запуском моих модульных тестов в приложении Play Framework.В настоящее время я использую v 2.6.11 Play и sbt 0.13.17.Тесты работали в прошлом, но кажется, что теперь sbt не может их выполнить.

Если я просто запустите sbt test, я получу No tests were executed..Если я начну sbt с sbt --debug, я получу более подробный журнал со следующим:

[debug] [naha] . [debug] [naha] All member reference dependencies will be considered within this context. [debug] [naha] New invalidations: [debug] [naha] Set() [debug] [naha] Initial set of included nodes: Set() [debug] [naha] Previously invalidated, but (transitively) depend on new invalidations: [debug] [naha] Set() [debug] [naha] All newly invalidated sources after taking into account (previously) recompiled sources:Set() [debug] Copy resource mappings: [debug] [debug] Framework implementation 'org.scalacheck.ScalaCheckFramework' not present. [debug] Framework implementation 'org.specs2.runner.Specs2Framework' not present. [debug] Framework implementation 'org.specs2.runner.SpecsFramework' not present. [debug] Framework implementation 'org.specs.runner.SpecsFramework' not present. [debug] Subclass fingerprints: List((org.scalatest.Suite,false,org.scalatest.tools.Framework$$anon$1@1883984e), (junit.framework.TestCase,false,com.novocode.junit.JUnit3Fingerprint@420f0739)) [debug] Annotation fingerprints: List((org.scalatest.WrapWith,false,org.scalatest.tools.Framework$$anon$2@453e6a3d), (org.junit.runner.RunWith,false,com.novocode.junit.RunWithFingerprint@7fb29b6c), (org.junit.Test,false,com.novocode.junit.JUnitFingerprint@7760adb)) [debug] javaOptions: List() [debug] Forking tests - parallelism = false [info] ScalaTest [info] Run completed in 38 milliseconds. [info] Total number of tests run: 0 [info] Suites: completed 0, aborted 0 [info] Tests: succeeded 0, failed 0, canceled 0, ignored 0, pending 0 [info] No tests were executed. [debug] Summary for JUnit not available. [debug] Forcing garbage collection...

Это мой build.sbt файл:

lazy val root = (project in file("."))
  .enablePlugins(PlayJava,PlayEbean)

scalaVersion := "2.11.7"

libraryDependencies ++= Seq(
  javaJdbc,
  javaWs,
  javaJpa,
  filters,
  guice,
  // Bunch of Dependencies
)

dependencyOverrides ++= Set(
  "io.ebean" % "ebean" % "11.14.3" withSources()
)

// Remove dependencies because of Multiple Bindings to SLF4J
excludeDependencies += "org.slf4j" % "slf4j-log4j12"
excludeDependencies += "org.log4j" % "log4j"

// Don't know why But activator stage started to complain while Compiling
// http://stackoverflow.com/questions/22974766/play2-play-stage-command-fails-with-not-found-type-setupcontext
sources in doc in Compile := List()

Я пытался добавить crossPaths := false согласно этой теме в Github

С тех пор, как я увидел это сообщение на Missing Implementations, я добавил это к своему build.sbt (через различныепоиски гугл):

"org.scalatest" %% "scalatest" % "3.0.5" % Test, "com.novocode" % "junit-interface" % "0.11" % Test, "org.exparity" % "hamcrest-date" % "2.0.0" % Test

но без везения.Я был на этом все утро в различных потоках Stackoverflow и проблемах GitHub это , это или это

Если у кого-то есть какие-то идеио том, как я могу отладить эту ситуацию.

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Если вы запускаете тесты JUnit, добавьте в build.sbt следующее:

libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test"
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v")

Возможно, тесты JUnit действительно выполняются, но события журнала находятся на уровне DEBUG, поэтому выне могу их видеть.В соответствии с опцией docs -v регистрирует их на уровне INFO:

Журнал «Тестовый запуск запущен» / «Тестовый запуск завершен» / «Тестовый запуск завершен», события в журналеуровень «информация» вместо «отладка».

На моем компьютере параметр -v дает мне следующий вывод в sbt:

[info] Test run started
[info] Test com.gu.identitycommon.clickthrough.TokenServiceTest.shouldFlagInvalidPasswordResetTokens started
[info] Test com.gu.identitycommon.clickthrough.TokenServiceTest.shouldEndcodeAndDecodeActivationToken started
[info] Test com.gu.identitycommon.clickthrough.TokenServiceTest.shouldDecoedToNullUserGroupIfNoneProvidedInActivationToken started
[info] Test com.gu.identitycommon.clickthrough.TokenServiceTest.shouldRecognizeValidPasswordResetTokens started
[info] Test run finished: 0 failed, 0 ignored, 4 total, 0.276s
[info] Test run started

без теста -vопция не выводится.

0 голосов
/ 11 июня 2018

В моем случае это сработало:

Открыть консоль sbt: sbt

Запустить тесты: testOnly * или test *

Итак, добавив * исправил проблему.

...