2013-04-04 85 views
4

我想为我的包编写一些测试,这取决于包foo,我想导入一些为footest-suite编写的代码,但是这不是' t出口或在foo.cabal暴露。从依赖包的测试套件导入模块

换句话说我依赖foo.cabal具有本节

Test-Suite tests 
    Type:    exitcode-stdio-1.0 
    Build-Depends:  base, text, parsec >= 3, etc 
    Main-Is:   Test/TestRunner.hs 
    GHC-Options:  -fhpc -W -Wall -fno-warn-name-shadowing 
    CPP-Options:  -DTESTING 

而且我想进口一些Test/TestRunner.hs进口模块。我也想用cabal-dev来做到这一点。

有没有办法做到这一点,而不修改foo?如果不是,那么补丁foo以支持它的好方法是什么?

也许我的问题更通用的版本是:我可以告诉cabal让我访问另一个包中的未导出代码吗?

+0

如果您可以“告诉cabal让我访问另一个包中的未导出代码”,我会很惊讶。不导出某些模块的目的是不让用户访问它。如果cabal在一个简单的开关上忽略了这一点,它就不会尊重作者的意图。如果您需要访问未导出的内容,请使用源代码'cabal unpack'。 – 2013-04-04 21:34:44

回答

2

正如丹尼尔菲舍尔所说,这可能是一个愚蠢的事情要求cabal。相反,我可能想要fork这个库并导出我需要的东西。也许git子模块在这里会有所帮助。