Создавайте собственные флаги в Haskell

У меня есть тестовый набор, который запускает те же тестовые примеры с двумя бэкэндами: один в памяти и реальный, я пытаюсь создать функцию, которая запускает только реальный, когда присутствует флаг.

Время от времени я видел это в Prelude, но не могу заставить его работать.

Я бы более или менее был таким:

onFullSuite :: Spec -> Spec
#if defined(RUN_FULL_SUITE)
onFullSuite = id
#else
onFullSuite = xdescribe "Only on full test suite run"
#endif

Есть ли у вас намеки на недостающие части?

1 ответ

Решение

Это двухэтапный процесс:

  • создать флаг клики
  • условно определим это как ghc-option
flags:
  run-full-suite:
    manual: true
    default: false


library:
  source-dirs: src
  when:
  - condition: (flag(run-full-suite))
    then:
      cpp-options: -DRUN_FULL_SUITE
    else: {}
Другие вопросы по тегам