User Tools

Site Tools


toolsetup:testframework

Test framework setup

Preconditions / configuration

  • Installations:
  • Haskel project has been setup with stack
    • stack new <ProjectName>

Steps

All to to be reworked for Test.Tasty.

  1. Adapt package.yaml by adding the packages “tasty”, …, and so on as dependencies below section “tests”, as in the code shown below.
    • code below tests:, and <ProjectName>-test::
      •     dependencies:
            - <ProjectName>
            - <FurtherPackagesToUse>
    • complete file of package.yaml
      • name:                <ProjectNAme>
        version:             ...
        github:              ...
        license:             ...
        author:              ...
        maintainer:          ...
        copyright:           ...
        
        extra-source-files:
        - ...
        
        ...
        
        description:         Please see the README on GitHub at <https://github.com/githubuser/Test1#readme>
        
        dependencies:
        - base >= 4.7 && < 5
        
        library:
          source-dirs: src
        
        executables:
          ...
        
        tests:
          <ProjectName>-test:
            main:                Spec.hs
            source-dirs:         test
            ghc-options:
            - -threaded
            - -rtsopts
            - -with-rtsopts=-N
            dependencies:
            - <ProjectName>
            - <FurterPackagesNeededForTests>
  2. On windows setups, in order to avoid problems with regex (see https://github.com/haskell-hvr/regex-posix/issues/4), we have to adapt the file stack.yaml.
    1. Add lib “regex-posix-clib-2.7” into section extra-deps.
    2. Add flag “_regex-posix-clib: true” and “regex-posix:” below section flags
    • # This file was automatically generated by 'stack init'
      #
      # Some commonly used options have been documented as comments in this file.
      
      ...
      
      resolver: ...
      
      # User packages to be built.
      
      ...
      
      packages:
      - .
      
      ...
      
      extra-deps:
        - regex-posix-clib-2.7
      
      # Override default flag values for local packages and extra-deps
      flags:
         regex-posix:
            _regex-posix-clib: true
      
      ...
      
      # compiler-check: newer-minor
  3. Implement the test in file “Spec.hs” that is below folder “test” of the project by importing the 5 packages “Test.Framework”, and so on as shown in the code below.
    • -- to be adapted for using tasty
      import ...
      
      import qualified Lib as Lib
      
      main :: IO ()
      main = ...
      
      ...
      
  4. Run stack test and it will build your tests and run the tests
    • ...

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
You could leave a comment if you were logged in.
toolsetup/testframework.txt · Last modified: by 127.0.0.1

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki