Создавайте собственные флаги в 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: {}