Put testing library code into its own package
Clarification and motivation
Currently testing library code is located in multiple packages:
- We have
Michelson.Test*
modules inmorley
. - We have
Lorentz.Test*
modules inlorentz
. - We have
morley-nettest
.
There are two reasons why they should all be in their own package:
- Currently non-test targets have to depend on testing libraries that our test framework depends on. So if you develop a smart contract and depend on
morley
, even your library and executable will depend ontasty
. - There is a related issue: #53 (closed) where we will try to merge these things. In this case they will be tightly bound.
Note: maybe this issue will be resolved as part of #53 (closed), I am not sure.
One complication here is that we use our testing framework to test morley
itself. If we move it outside, we will need to find some way to test morley
. We can do it this way:
- Imagine we move all testing library code into
morley-nettest
(probably the name should be different in the end). - Then
morley-test
test-suite (frommorley
) will depend onmorley-nettest
which in turn depends onmorley
.
I heard that stack
(and maybe cabal
) does not handle it well, e. g. it recompiles too much, but I am not sure, we should check that.
Acceptance criteria
There is only one package whose library
depends on testing libraries such as HUnit
, tasty
, etc.
Edited by Ivan Gromakovskii