2013-12-22 60 views
2

我使用yesod init命令设置了yesod脚手架站点,并将其命名为yesodtry。我开始安装使用该命令,它被赋予了脚手架网站由yesod inityesod测试 - 缺少依赖项yesod-test

cd yesodtry && cabal sandbox init && cabal install && yesod devel 

一切顺利,我在127.0.0.1:3000访问演示站点。出于好奇,我试图尝试yesod test命令。下面是我得到的输出:

Resolving dependencies... 
Configuring yesodtry-0.0.0... 
cabal: At least the following dependencies are missing: 
hspec -any, yesod-test ==1.2.* 

眼看yesodtry.cabal文件如何有test部分,我试图执行cabal build test,这是输出:

cabal: Cannot build the test suite 'test' because test suites are not enabled. 
Run configure with the flag --enable-tests 

好... ...它告诉我运行cabal configure --enable-tests。而这里的输出:

Resolving dependencies... 
Configuring yesodtry-0.0.0... 
cabal: At least the following dependencies are missing: 
hspec -any, yesod-test ==1.2.* 

我看到yesodtry.cabal此行,为test-suite test“节”的build-depends

yesod-test >= 1.2 && < 1.3 

好像阴谋这里不安装的依赖关系。我怎么做?

谢谢。

回答

2

好的,我想我找到了这个Haskell-cafe thread的答案。

我们要做的:

cabal configure --enable-tests 
cabal install --only-dependencies --enable-tests 

而对于test-suite test部分的依赖将被安装。

我然后跑yesod test,这里是输出的最后几行:

Linking dist/build/test/test ... 
Building yesodtry-0.0.0... 
Preprocessing library yesodtry-0.0.0... 
In-place registering yesodtry-0.0.0... 
Preprocessing test suite 'test' for yesodtry-0.0.0... 
Linking dist/build/test/test ... 
Running 1 test suites... 
Test suite test: RUNNING... 
Test suite test: PASS 
Test suite logged to: dist/test/yesodtry-0.0.0-test.log 
1 of 1 test suites (1 of 1 test cases) passed. 

希望这将有助于任何人谁在今后遇到同样的问题。