0
В specs2 указан список реализаций, которые должны удовлетворять заданному набору тестов. Как я могу пропустить реализации, которые недоступны в текущей среде, но все же отображает сообщение, информирующее пользователя о том, что тесты были пропущены для данной реализации?Как пропустить реализацию с specs2
Я попытался это, но сообщение не отображается, если реализация не доступна
case class ImplToTest(name: String, impl: Option[Impl])
val toTest: List[ImplToTest] = ...
val testSuite: Impl => Fragment = ...
toTest.foreach { underTest =>
s"${underTest.name}" >> underTest.map(testSuite).getOrElse(org.specs2.specification.create.DefaultFragmentFactory.text("This implementation is being skipped"))
}
Да, это работает, спасибо. Хотя реализация менее симпатичная и более эффективная. Это изменение, которое я сделал: https://github.com/jedesah/Quasar/commit/1713d07749d38024553c7e7cdd58adc027545f2b. Есть ли способ выполнить одно и то же, не делая возвращаемого типа функции 'Unit'? – jedesah
Если вы замените 'fss.toList.foreach' на' Fragments.foreach (fss) ', не возвращаете ли вы' Фрагменты' вместо 'Unit'? – Eric
Если я это сделаю, типы, похоже, не совпадут. Возможно, моя ошибка в API-интерфейсах Fragments виновата. Я знаю, что только что сделанный выше переключатель запускает ошибку компиляции, ожидаемую 'Fragments', но нашел' org.specs2.execute.Skipped' в строке 69 – jedesah