Предоставление опций для HSpec от Cabal

Я пытаюсь начать работу с hspec. У меня есть рабочий случай, работающий с QuickCheck, но я хотел бы получить больше подробностей при запуске cabal test. Я нашел эту статью от hspec, в которой даны инструкции по предоставлению более подробного контроля при запуске исполняемого файла. . В настоящее время я использую hi для инициализации своих пакетов haskell, поэтому мой набор тестов Cabal выглядит следующим образом:

Test-Suite spec
  Type:                 exitcode-stdio-1.0
  Default-Language:     Haskell2010
  Hs-Source-Dirs:       src
                      , test
  Ghc-Options:          -Wall
  Main-Is:              Spec.hs
  Build-Depends:        base
                      , hspec
                      , QuickCheck
                      , quickcheck-instances
                      , mtl
                      , text
                      , transformers

Я предполагаю, что это что-то вроде «аргументов командной строки по умолчанию», но это просто неправильно. Как я могу предоставить аргументы набору hspec?

Кроме того, это может быть важно. hi разделяет набор тестов таким образом, что единственным содержимым в Spec.hs является:

{-# OPTIONS_GHC -F -pgmF hspec-discover #-}

но все тесты и код находятся в test/MainSpec.hs, который экспортирует main и spec.


person Athan Clark    schedule 14.12.2014    source источник


Ответы (1)


Ознакомьтесь с разделом Использование пользовательской основной функции на странице http://hspec.github.io/hspec-discover.html

Соответствующие биты скопированы здесь для вашего удобства:

Вот пример, показывающий, как это можно использовать для указания другого средства форматирования по умолчанию:

-- file test/Spec.hs
{-# OPTIONS_GHC -F -pgmF hspec-discover -optF --module-name=Spec #-}

-- file test/Main.hs
module Main where

import Test.Hspec.Runner
import Test.Hspec.Formatters
import qualified Spec

main :: IO ()
main = hspecWith defaultConfig {configFormatter = Just progress} Spec.spec
person Rodrigo B. de Oliveira    schedule 05.06.2016