https://github.com/unkindpartition/tasty-html
HTML test reporter for the Tasty test framework
https://github.com/unkindpartition/tasty-html
Last synced: about 2 months ago
JSON representation
HTML test reporter for the Tasty test framework
- Host: GitHub
- URL: https://github.com/unkindpartition/tasty-html
- Owner: UnkindPartition
- License: mit
- Created: 2014-02-23T22:30:21.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-01-01T23:46:02.000Z (over 1 year ago)
- Last Synced: 2025-04-18T04:56:11.256Z (about 2 months ago)
- Language: Haskell
- Size: 488 KB
- Stars: 7
- Watchers: 5
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
tasty-html
==========HTML test reporter for the Tasty test framework.
## Example
Here's how your `test.hs` might look like:
```haskell
import Test.Tasty
import Test.Tasty.SmallCheck as SC
import Test.Tasty.QuickCheck as QC
import Test.Tasty.HUnit
import Test.Tasty.Runners.Htmlimport Data.List
import Data.Ordmain = defaultMainWithIngredients (htmlRunner:defaultIngredients) tests
tests :: TestTree
tests = testGroup "Tests" [properties, unitTests]properties :: TestTree
properties = testGroup "Properties" [scProps, qcProps]scProps = testGroup "(checked by SmallCheck)"
[ SC.testProperty "sort == sort . reverse" $
\list -> sort (list :: [Int]) == sort (reverse list)
, SC.testProperty "Fermat's little theorem" $
\x -> ((x :: Integer)^7 - x) `mod` 7 == 0
-- the following property does not hold
, SC.testProperty "Fermat's last theorem" $
\x y z n ->
(n :: Integer) >= 3 SC.==> x^n + y^n /= (z^n :: Integer)
]qcProps = testGroup "(checked by QuickCheck)"
[ QC.testProperty "sort == sort . reverse" $
\list -> sort (list :: [Int]) == sort (reverse list)
, QC.testProperty "Fermat's little theorem" $
\x -> ((x :: Integer)^7 - x) `mod` 7 == 0
-- the following property does not hold
, QC.testProperty "Fermat's last theorem" $
\x y z n ->
(n :: Integer) >= 3 QC.==> x^n + y^n /= (z^n :: Integer)
]unitTests = 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
]
```To produce the HTML output, run the test program with the `--html` option,
giving it the html file path:```
./test --html results.html
```Here is the output of the above program rendered to HTML:

(Note that whether QuickCheck finds a counterexample to the third property is
determined by chance.)## Hacking
```
$ git clone --recursive https://github.com/feuerbach/tasty-html
$ cabal run tasty-html-pass -- --html pass.html
$ cabal run tasty-html-fail -- --html fail.html
$ firefox pass.html fail.html
```