0

Yesod提供了yesod test工具。测试是Spec可以由 执行的类型的值hspec

脚手架带有一个预定义的规范,在tests/HomeTest.hs该规范中显式调用tests/main.hs,该文件显然是在您运行时编译和执行的yesod test。我假设您应该在main.hs创建它们时手动添加所有规范,尽管也许有一种方法可以使用 hspec 的自动测试发现

这对于回归测试非常有用,但是测试驱动开发呢?编写单个测试然后在开发过程中重复运行它的正确方法是什么?的帮助文本yesod test表明没有办法做到这一点:

$ yesod test --help
Usage: yesod test
  Build and run the integration tests

直接运行一个规范文件是行不通的(我想你不会期望它,因为它不包含main定义):

$ runhaskell tests/HomeTest.hs
tests/HomeTest.hs:4:8:
    Could not find module ‘TestImport’
    Use -v to see a list of the files searched for.

$ cabal run tests/HomeTest.hs
cabal: Cannot build the executable 'myproject' because the component is marked as disabled in the .cabal file.

我不确定为什么我的项目的可执行文件被禁用。我应该改变它吗?或者我应该创建一个临时副本main.hs并注释掉所有其他测试?什么是最干净的解决方案?

4

0 回答 0