问题标签 [tasty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - Haskell Tasty Unit Tests - 如何使用组和简单的固定装置来避免重复?
您将如何编写一个 Tasty HUnit 测试,该测试在单个测试中包含针对单个夹具变量的多个检查,或者至少是一组整洁的此类测试?
例如,考虑这个 Gherkin 规范:
我可以做这样的事情,但它非常重复:
我对此的担忧是我已经重复了三次场景名称,并且我还创建了三次夹具。我想找到一种方法将所有三个断言分组为一个标题为“A 3-Vector has x, y and z components”的组,并且只指定一次夹具 Vec。
我可以扩展测试规范以尽量减少一些描述重复,但如果可以的话,我宁愿坚持 Gherkin 规范:
我不知道为组定义一次 Vec 的方法。
我想做的是这样的(不是真正的代码!):
haskell - Haskell:如何使用 Tasty 和 Hspec 测试提升函数引发的断言异常
我仍然是 Haskell 的初学者。我通过尝试来学得最好,但有时我觉得我错过了一些基本的东西。这是其中之一。
我有一些调用Control.Exception.assert
的代码,但没有抛出断言异常。我将此追踪到默认情况下被忽略的断言(这是不寻常的,因为文档建议相反),所以我将其添加到我的package.yaml
:
我没有使用-O1
or所以我不知道为什么默认行为是忽略-O2
,但这不是这个问题的真正含义。-fignore-asserts
assert
我想编写一个 Hspec 单元测试来检查这种行为(同时也是一个了解 Hspec 的机会)。
在我的Lib
模块中:
这个模块是用-fno-ignore-asserts
.
在我的Spec.hs
(我实际上是在使用 Tasty 来主持测试):
此测试模块未使用-fno-ignore-asserts
. 我认为这没关系,因为它实际上并没有调用assert
自己,它只是调用模块中的函数checkAssert
,该函数是使用该标志编译的。Lib
我遇到的问题实际上与如何从 Monad 调用非单子函数有关,例如Spec
. 根据我的阅读,我可以使用fmap
或liftM
调用非单子函数,例如checkAssert
- 但我无法编译:
有人可以解释一下我在哪里出错了吗?
注意:我意识到Test.HUnit.Tools
hasassertRaises
并且我最初尝试使用它,但Test.Tasty.HUnit
由于某种原因不包含此功能。
haskell - 在构建中包含美味快速检查的问题
我是新手。
我有一个堆栈项目,我想使用taste-quickcheck。当我添加tasty-quickcheck
到 package.yaml 时,stack 会要求我将它添加到 stack.yaml 以及 extra-deps 部分下。添加tasty-quickcheck-0.10.1.1
到 extra-deps 堆栈后,要求我向我添加的 extra-deps 添加大约十几个包。
现在我处于尝试执行以下错误的阶段stack build
。
我的 package.yaml 如下所示。
我的 stack.yaml 如下所示。
我有两个问题。
- 如何解决上述错误?
- 堆栈是否通常会告诉您添加十几个依赖项只是为了获得一个包,例如包含美味快速检查?这对我来说听起来不太好。这是大多数包裹的标准吗?
haskell - 使用来自 Tasty 的 Warp 的 `testWithApplication`
Tasty只有withResource功能来管理测试中的资源。
该函数将资源初始化和清理函数作为参数:
我正在尝试测试一个仆人应用程序,所以我想使用Warp.testWithApplication
每个仆人的测试教程,但这是一个with*
风格的函数(一个调用你的动作并为你管理资源的函数),即类型是:
考虑到我没有初始化程序/清理函数而是包装with...
函数,我是否遗漏了一些东西,或者真的很难将两者粘合在一起?
笔记
我知道我可以用testWithApplication
(in main
) 包装整个测试套件,但如果 API 仅针对需要它的 TestTree 启动,我更愿意。