Ich habe Probleme beim Importieren eines Moduls zum Testen. Ich möchte Load
in TestLoad
importieren, um es zu testen. Ich habe versucht, das Quellverzeichnis zu hs-source-dirs
und sowohl das Paket nsga
und das Modul Load
zu build-depends
in der Cabal-Datei für das Testpaket hinzufügen, aber GHC klagt immer noch Could not find module Load
, wenn ich versuche, import Load
in TestLoad.hs
.Importieren von Modulen zum Testen
Ich bin auch neugierig auf die Struktur der Tests und wie man die Dateien benennen. Ist der folgende Ansatz korrekt?
Verzeichnisstruktur:
nsga/
src/
Main.hs
Load.hs
test/
TestMain.hs
TestLoad.hs
Die Kabalen-Datei:
executable nsga
main-is: Main.hs
build-depends:
QuickCheck -any,
base -any,
doctest -any
default-language: Haskell2010
hs-source-dirs: src
other-modules:
Load
ghc-options: -ferror-spans -Wall -fsimpl-tick-factor=10
test-suite test-nsga
type: exitcode-stdio-1.0
main-is: TestMain.hs
build-depends:
QuickCheck -any,
base -any,
doctest -any,
HUnit -any,
nsga -any,
Load -any
default-language: Haskell2010
hs-source-dirs: test, src
other-modules:
TestLoad
ghc-options: -ferror-spans
Ich glaube, Sie muss nur 'exposed-modules: Load' hinzufügen (nicht zu' other-modules' - es wird b (dort versteckt) zu 'nsga' (normalerweise fügst du eine * lib * für dieses Zeug hinzu) - du solltest' src' nicht zu den 'hs-source-dirs' der Testsuite hinzufügen müssen. – Carsten
Wenn du es * in Aktion sehen willst, empfehle ich 'stack' und probiere einfach eine der Templates aus - zum Beispiel' stack new LetsLook franklinchen' (dies wird die 'franklinchen' Vorlage benutzen, die eine * lib * enthält, eine * ausführbare * mit der lib und eine * test-suite * testet die lib) – Carsten
Hinzufügen von 'exposed-modules: Load' hat nicht funktioniert – tsorn