hspec

    1热度

    1回答

    在遇到undefined时,在Haskell中编写一个表达式失败的单元测试有点棘手。我试了下HSpec: module Main where import Test.Hspec import Control.Exception (evaluate) main :: IO() main = hspec $ do describe "Test" $ do it "tes

    6热度

    1回答

    我已经使用Hspec的automatic spec discovery功能编写了一系列测试。我也使用stack作为我的构建工具。 我的测试目录包含Spec.hs文件以及我的应用程序的不同模块(例如Module0Spec.hs,Module1Spec.hs)的测试文件。 现在,当我开始编写新的测试模块,或者当我想在代码更改后重新运行失败的测试时,我希望只能运行给定的测试模块。 有什么办法可以让堆栈或

    3热度

    2回答

    说我有一个功能: safeHead :: [a] -> Maybe a safeHead [] = Nothing safeHead xs = Just $ head xs 和测试: describe "Example.safeHead" $ do it "returns the head" $ do safeHead [1,2,3] `shouldBe` Just 1

    2热度

    1回答

    我正在使用yesod-sqlite模板并试图在Database.Persist函数中使用get函数进行测试。 这里是我的代码: [Entity _ task] <- runDB $ selectList [TaskName ==. name] [] ... user <- runDB $ X.get (taskUserId task) 而且我得到的错误: my_project/test/H

    1热度

    1回答

    我正在关注传递选项给Hspec的hspec documentation。从命令行传递时指定我的选项按预期工作,但从.hspec文件或任何其他列出的方法传递时不起作用。 我的测试套件中的一个测试与过滤器“post_returns_200”匹配。我可以不通过命令运行套件的其余部分单独运行这个测试 stack test --test-arguments=--match="post_returns_200

    1热度

    1回答

    同样以快速检查如何支持反例: property \x -> counterexample ("Foo failed with: " ++ ...) $ foo x 但在某种程度上,它的工作原理与shouldBe,例如 failDetails (" details: " ++ baz a) $ a `shouldBe` 2 ,我想它的线沿线的打印东西: expe

    1热度

    1回答

    我有一个程序,它接受来自getLine的用户输入,然后验证它是否都是数字。如果通过,它将运行String -> String的功能并将结果打印到屏幕上。如果不是,则重复getLine。 module Main where import Control.Monad.Loops (untilJust) import Data.Char (isDigit) main = do l

    1热度

    1回答

    尝试单元测试路线的问题。 Scotty,Persistent和Hspec-WAI。 与Yesod或Spock不同,Scotty没有一个很好的存放数据库处理程序的地方。我通过一个巨大的“做”来启动数据库,将数据库池保存为局部变量,然后使用该变量。 app :: IO() app = do -- allocate_database $ \pool -- scotty 8080

    2热度

    1回答

    有没有办法阻止成功的测试被打印到屏幕上? 目前我有很多测试,真的很长的投入,我真的只关心看到失败? 编辑:我正在我的测试与stack test 解决方案: 感谢来自@ MB14答案,我能搜索什么,我一直在寻找。 直接运行测试文件: 你可以使用: runhaskell testfile.hs --format=failed-examples 或 runhaskell testfile.hs -f

    0热度

    1回答

    在大多数编程语言中,在某些情况下很容易跳过测试。在基于haskell HSpec的测试套件中有没有适当的方法来做到这一点?