我建立了一个相当简单的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
时,构建工作正常。我的阴谋文件是:Name: Example
Version: 0.1
Synopsis: Synopsis
Description:
Long description.
License: GPL
License-File: LICENSE
Author: SeanK
Maintainer: [email protected]
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,因为目前我不使用(==>),这是我目前唯一需要的功能。其余的应该简单明了。任何帮助将不胜感激。
最佳答案
您应该在TestSuite.hs
文件中将模块名称定义为Main
,例如there。
The Haskell 98 Report的报价:
关于testing - Cabal输出被重定向但未生成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12133320/