Вывод Cabal перенаправляется, но не генерируется
У меня есть довольно простой проект haskell, где я просто хочу, чтобы фреймворк работал с тестированием и так далее, прежде чем я действительно начну кодировать. У меня есть исходные файлы для исполняемого файла в каталоге /src
(где /
- корень проекта) и мои тесты в каталоге /testsuite
. /testsuite
содержит простой тестовый файл под названием TestSuite.hs
с main = Test.Framework.defautMain tests
в качестве реализации main. Проблема в том, что когда я бегу
cabal clean && cabal configure --enable-tests && cabal build
Я получаю предупреждение
output was redirected with -o, but no output will be generated because there is no main module.
Сборка работает нормально, когда я не уточняйте --enable-tests
. Мой файл cabal:
Name: Example
Version: 0.1
Synopsis: Synopsis
Description:
Long description.
License: GPL
License-File: LICENSE
Author: SeanK
Maintainer: email@example.com
Category: Development
Build-Type: Simple
Cabal-Version: >= 1.8
Test-Suite test
Type: exitcode-stdio-1.0
Main-Is: TestSuite.hs
Build-Depends: base >= 3 && < 5,
test-framework,
test-framework-quickcheck
-- QuickCheck
Hs-Source-Dirs: src,
testsuite
Executable example
Main-Is: Main.hs
-- Other-Modules:
Build-Depends: base >= 3 && < 5,
haskell98
Hs-Source-Dirs: src
Ghc-Options: -Wall
Я отключил функцию QuickCheck, потому что в данный момент я не использую ( = = > ), что является единственной функцией, которая мне сейчас нужна. Остальное должно быть прямолинейным. Любая помощь будет очень признательна.
2 ответа:
Вы должны определить имя модуля в вашем файле
TestSuite.hs
какMain
, например там.Цитата из отчета Haskell 98 :
Программа Хаскелла - это набор модулей, один из которых, по соглашению, должен называться Main и должен экспортировать значение main.