2013-04-04 1 views
4

Я хотел бы написать несколько тестов для моего пакета, который зависит от пакета foo, и я бы хотел импортировать код, написанный для footest-suite, но который isn ' 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 unpack'. –

ответ

2

Как предполагает Даниэль Фишер, это, вероятно, глупая вещь, чтобы спросить об этом. Вместо этого я, вероятно, хочу разветвить lib и экспортировать то, что мне нужно. И, может быть, git-подмодули помогут здесь.