У меня есть несколько тестов как часть WordSpec.Из моего чтения Scalatest Docs, это должно создать набор тестов.HSQLDB перезапускается для каждого из тестовых случаев в этом файле.
@RunWith(classOf[JUnitRunner])
class UserAgentTest extends WordSpec with BeforeAndAfterAll {
val userService: UserService = new UserServiceJpaImpl
var userAgent: ActorRef = _
var user: MutableUser = _
override def beforeAll(configMap: Map[String, Any]) {
TestUtil.deleteAllTestUsers()
user = TestUtil.createTestUser("joe")
user.cash = 500
user.exp = 10000
user.level = 10
userService.save(user)
userAgent = actorOf(new UserAgent(user.id)).start()
}
override def afterAll(configMap: Map[String, Any]) {
if (userAgent != null)
userAgent.stop()
}
"UserAgent" must {
"test 1..." in { ... }
"test 2..." in { ... }
}
}
В результате данные теста, загруженные в beforeAll, отсутствуют для теста 2. Я могу выполнить эту работу, инициализируя базу данных для каждого теста (используя «до»).вместо "beforeAll").Это не проблема для такого маленького теста, но может быть проблемой позже.Я запускаю это с Maven (у него возникают проблемы при запуске изнутри моей IDE)
Я также заметил, что когда я запускаю "mvn test", создается впечатление, что создается один экземпляр HSQLDB для всего моего теста (Это означает, что мой приведенный выше пример будет успешным).Когда я запускаю приведенный выше тест как «mvn test -Dtest = UserAgentTest», он не выполняется (создается впечатление, что создается несколько экземпляров HSQLDB).
К сожалению, выполнение с «mvn test» вызовет некоторые другие мои тестыпотерпеть неудачу, так как один экземпляр HSQLDB используется для всех моих наборов тестов.
Мой вопрос: как мне настроить мой тест для создания одного (и только одного) экземпляра HSQLDB для каждого набора тестов?