2013-04-04 82 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子模塊在這裏會有所幫助。