我建立了一个相当简单的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/

10-09 20:49