tasty-html: Render tasty output to HTML

[ library, mit, program, testing ] [ Propose Tags ]

A tasty ingredient to output test results in HTML5.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1, 0.2, 0.3, 0.4, 0.4.1, 0.4.1.1, 0.4.1.2, 0.4.1.3, 0.4.1.4, 0.4.2.0, 0.4.2.1, 0.4.2.2
Change log CHANGELOG.md
Dependencies base (>=4.5 && <5), blaze-html (>=0.7), bytestring (>=0.10), containers (>=0.5.0.0), filepath (>=1.3), generic-deriving (>=1.6.2), mtl (>=2.1.2), semigroups, stm (>=2.4.2), tagged (>=0.7), tasty (>=1.4 && <1.5), text (>=1.0), transformers (>=0.3.0.0) [details]
License MIT
Author Danny Navarro, Roman Cheplyaka, Chris Catalfo
Maintainer j@dannyavarro.net, roma@ro-che.info
Revised Revision 1 made by AndreasAbel at 2024-01-01T17:22:05Z
Category Testing
Home page http://github.com/feuerbach/tasty-html
Source repo head: git clone git://github.com/feuerbach/tasty-html.git
Uploaded by RomanCheplyaka at 2021-01-13T10:25:27Z
Distributions LTSHaskell:0.4.2.1, NixOS:0.4.2.1, Stackage:0.4.2.2
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 6965 total (68 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-01-13 [all 1 reports]

Readme for tasty-html-0.4.1.4

[back to package description]

tasty-html

HTML test reporter for the Tasty test framework.

Example

Here's how your test.hs might look like:

import Test.Tasty
import Test.Tasty.SmallCheck as SC
import Test.Tasty.QuickCheck as QC
import Test.Tasty.HUnit
import Test.Tasty.Runners.Html

import Data.List
import Data.Ord

main = 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

When cloning this repository use --recursive parameter to checkout the git submodule pointing to the bootstrap fork being used by tasty-html.

$ git clone --recursive https://github.com/feuerbach/tasty-html

Making changes to the bootstrap fork is the same procedure followed by the upstream project.

$ cd data/bootstrap
$ npm install

You might change the style by editing the less files. Once you are done, use grunt to compile the css files:

$ grunt dist

This assumes you have grunt-cli installed globally, either with npm (npm install -g grunt-cli) or from a package manager if available.

Consider submitting your changes as pull requests to the tasty-html bootstrap fork at https://github.com/jdnavarro/bootstrap.