2013-01-20 60 views
30

我目前正在嘗試使用測試驅動開發方法來做一個Haskell項目。在Java中,我們可以創建一個包含src和bin文件夾的結構良好的項目,然後使用JUnit進行單元測試的主文件夾和測試文件夾。我只是想知道是否有一種標準的方法來在Haskell中獲得這樣的結構?源文件夾的二進制文件夾,源文件夾中的兩個文件夾之一用於測試主源文件夾。如何構建一個Haskell項目?

回答

24

我的參考資料一直在Structure of a Haskell projectHow to write a Haskell program,這說明社區或多或少似乎遵循一些默認值。到目前爲止,它對我來說效果很好,但我的項目還沒有很大規模。

Structure of a Haskell project中的建議聽起來與您在文章中列出的內容類似,只需進行一些小的修改,如測試文件夾與src文件夾位於同一目錄中。

編輯:

cabal init如果您有至少進口的所有文件都會產生少量爲你包括與相關依賴小集團文件。這是一個很好的開始,但只是你正在尋找的一部分。

理想情況下,隨着項目的增長,cabal文件和目錄層次結構會自動保持最新,但我不知道任何公開的工具都會這樣做。這也許是我有一天的名單,因爲我相信它對很多人來說都是如此。

-odir-hidir可以與ghc一起使用,將* .o和* .hi文件放在單獨的目錄中。您可以更GHC user guide's section on separate compilation

EDIT2閱讀:

其他相關的/重疊的帖子:

+0

感謝您的回覆。在java中,我可以使用maven自動生成所有必需的文件夾,並且在rails上使用ruby命令「rails new ProjectName」也會這樣做,我只是在想這是一個常見任務,也許Haskell中有一些命令這是做到這一點。 – HHC

+0

當使用ghc來編譯一個.hs文件時,編譯什麼是最好的方法,讓所有的.hs在另一個文件夾中的所有中間文件(.o .hi等等)中的一個文件夾中,以及執行文件還在另一個文件夾 – HHC

+0

編輯評論的回覆,因爲它很長,並從格式化中受益。 – Davorak