ScalaTest: возможно ли объединить AsyncWordSpec и GuiceOneAppPerSuite - PullRequest
0 голосов
/ 01 сентября 2018

Я хотел переключить свои приемочные тесты с WordSpec на AsyncWordSpec.

Существующая черта выглядит так:

import org.scalatest.WordSpec
import org.scalatestplus.play.guice.GuiceOneAppPerSuite

class PetDBSpec
    extends WordSpec
    with GuiceOneAppPerSuite {
}

Если я изменю это на AsyncWordSpec, я должен изменить это так:

import org.scalatest._
import org.scalatestplus.play.guice.GuiceOneAppPerSuite

class PetDBSpec
    extends AsyncWordSpec
    with GuiceOneAppPerSuite {  this: TestSuite =>
}

Но все же получите это исключение:

[error] ... class PetDBSpec needs to be abstract, since method withFixture in trait TestSuiteMixin of type (test: PetDBSpec.this.NoArgTest)org.scalatest.Outcome is not defined
[error] (Note that TestSuiteMixin.this.NoArgTest does not match AsyncTestSuite.this.NoArgAsyncTest)

Он отлично работает с моими UnitTests.

  • Должен ли я настроить свои тесты?
  • Или их невозможно смешать?

Используемые версии:

  • Играть: 2.6.15
  • Тест Scala: 3.0.5
  • scalatestplus-play: 3.1.2

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Я нашел открытую проблему в Github:

https://github.com/playframework/scalatestplus-play/issues/112

0 голосов
/ 01 сентября 2018

Объявление GuiceOneAppPerSuite ниже:

trait GuiceOneAppPerSuite 
    extends BaseOneAppPerSuite 
    with GuiceFakeApplicationFactory { this: TestSuite =>

}

Из приведенного выше кода вы можете видеть, что GuiceOneAppPerSuite ожидает смешения с TestSuite.

import org.scalatest._
import org.scalatestplus.play.guice.GuiceOneAppPerSuite

class PetDBSpec
    extends AsyncWordSpec
    with TestSuite
    with GuiceOneAppPerSuite { 

}
...