The tasty-html package

[Tags: library, mit]

A tasty ingredient to output test results in HTML5.


[Skip to ReadMe]

Properties

Versions0.1, 0.2, 0.3, 0.4, 0.4.1
Change logCHANGELOG.md
Dependenciesbase (>=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), stm (>=2.4.2), tagged (>=0.7), tasty (>=0.10.1), text (>=1.0), transformers (>=0.3.0.0) [details]
LicenseMIT
AuthorDanny Navarro, Roman Cheplyaka, Chris Catalfo
Maintainerj@dannyavarro.net, roma@ro-che.info
CategoryTesting
Home pagehttp://github.com/feuerbach/tasty-html
Source repositoryhead: git clone git://github.com/feuerbach/tasty-html.git
UploadedTue Nov 18 08:35:44 UTC 2014 by jdnavarro
DistributionsNixOS:0.4.1
Downloads652 total (39 in last 30 days)
Votes
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for tasty-html-0.4.1

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:deafultIngredients) 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
  ]

And 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.