Difference between revisions of "Development Libraries and Tools"

From HaskellWiki
Jump to navigation Jump to search
(Add Hspec)
(2 intermediate revisions by 2 users not shown)
Line 25: Line 25:
 
* [http://www.cs.chalmers.se/~rjmh/QuickCheck/ QuickCheck] - powerful testing framework where test cases are generated according to specific properties.
 
* [http://www.cs.chalmers.se/~rjmh/QuickCheck/ QuickCheck] - powerful testing framework where test cases are generated according to specific properties.
 
* [http://hackage.haskell.org/package/HUnit-1.2.2.1 HUnit] - unit testing framework similar to JUnit.
 
* [http://hackage.haskell.org/package/HUnit-1.2.2.1 HUnit] - unit testing framework similar to JUnit.
* [http://hspec.github.com/ Hspec] - a framework for BDD similar to RSpec
+
* [http://hspec.github.io/ Hspec] - a testing framework similar to RSpec with support for QuickCheck and HUnit
  +
* [http://batterseapower.github.com/test-framework/ test-framework] integrates both Hunit and quickCheck
  +
* [http://hackage.haskell.org/package/HTF-0.10.0.5 The Haskell Test Framework, HTF] integrates both Hunit and quickCheck.
   
 
== Dynamic Analysis Tools ==
 
== Dynamic Analysis Tools ==

Revision as of 07:18, 18 May 2013


This page contains a list of useful tools and libraries used frequently in Haskell development, for things such as debugging, benchmarking, static analysis and testing.

Debuggers

  • ghci powerful and extensible debugger for GHC.
  • hugs a haskell interpreter that includes debugging facilities.

Static Analysis Tools

Tools that perform some form of analysis on your code and provide useful feedback.

  • HLint - Detect common style mistakes and redundant parts of syntax, improving code quality.
  • Haskabelle - Convert haskell programs to isabelle theories.
  • Catch - Detect common sources of runtime errors (currently difficult to compile)
  • Sourcegraph - Haskell visualizer

Also, GHC when using the "-Wall" option provides a great deal of useful feedback.

Testing Frameworks

Libraries for testing Haskell.

  • QuickCheck - powerful testing framework where test cases are generated according to specific properties.
  • HUnit - unit testing framework similar to JUnit.
  • Hspec - a testing framework similar to RSpec with support for QuickCheck and HUnit
  • test-framework integrates both Hunit and quickCheck
  • The Haskell Test Framework, HTF integrates both Hunit and quickCheck.

Dynamic Analysis Tools

Tools that analyse your program's run-time behavior to provide useful information, such as coverage or benchmarks.

  • hat - analyse each evaluation step of your haskell program.
  • hpc - check evaluation coverage of a haskell program, useful for determining test coverage.
  • criterion - powerful benchmarking framework.
  • threadscope - a new feature on the horizon which allows for benchmarking and visualization of multithreaded performance.
  • ghc profiling tools - a powerful suite of profiling tools exist within GHC itself

Ancillary Tools

Tools that aid the development process, such as build tools, revision control systems, and similar, while not performing any interaction with the code itself.