Tasty Travis: Fancy Travis CI output for tasty tests
====================================================
[](https://en.wikipedia.org/wiki/BSD_License)
[](https://hackage.haskell.org/package/tasty-travis)
[](https://travis-ci.org/merijn/tasty-travis)
**Tasty Travis** provides fancy
[Tasty](https://hackage.haskell.org/package/tasty) test output on
[Travis CI](https://travis-ci.org/).
It allows you get coloured test output, folding and collapsing groups of tests,
and hiding the output of successful tests.
Example
-------
Here's what an example `test.hs` might look:
```haskell
import Data.List
import Data.Ord
import Data.Tagged (Tagged)
import Data.Typeable (Typeable)
import Options.Applicative (switch, long, help)
import Test.Tasty
import Test.Tasty.Options
import Test.Tasty.Travis (travisTestReporter, defaultConfig)
import Test.Tasty.HUnit
newtype EnableTravis = EnableTravis Bool
deriving (Eq, Ord, Typeable)
instance IsOption EnableTravis where
defaultValue = EnableTravis False
parseValue = fmap EnableTravis . safeRead
optionName = return "enable-travis"
optionHelp = return "Run Travis tests."
optionCLParser =
fmap EnableTravis $
switch
( long (untag (optionName :: Tagged EnableTravis String))
<> help (untag (optionHelp :: Tagged EnableTravis String))
)
main = travisTestReporter cfg [] tests
where
cfg = defaultConfig { travisTestOptions = setOption (EnableTravis True) }
tests :: TestTree
tests = testGroup "Unit tests"
[ testCase "List comparison (different length)" $
[1, 2, 3] `compare` [1,2] @?= GT
-- the following test does not hold
, testCase "List comparison (same length)" $
[1, 2, 3] `compare` [1,2,2] @?= LT
, askOption $ \(EnableTravis enable) ->
if enable then travisTests else testGroup "" []
]
travisTests :: TestTree
travisTests = testGroup "Travis" [ {- Travis tests here -} ]
```