haskell - 获取 Stack 以通过测试套件名称作为 --test-arguments 的一部分
问题描述
使用 cabal 可以建立一个连续构建,以许多 CI 系统将接受的格式记录测试成功/失败,例如:
cabal test '--test-option=--jxml=test-results/$test-suite.xml'
这里重要的部分$test-suite
是替换为测试的名称,以便不同的测试将其结果放入不同的文件中。
当我使用堆栈时,所有测试都会得到--jxml=test-results/$test-suite.xml
传递给它们的选项,因此最终结果是测试会覆盖彼此的结果。
有什么方法可以运行我的所有测试,stack
以便我可以告诉每个测试套件一个不同的地方来写他们的结果?
我什至会接受一些堆栈命令来为我解析 cabal 文件并告诉我有哪些测试套件,因为这样我就可以在 bash 中编写一个循环,一次调用每个测试。
解决方案
我什至会接受一些堆栈命令来为我解析 cabal 文件并告诉我有哪些测试套件,因为这样我就可以在 bash 中编写一个循环,一次调用每个测试。
如果您愿意为此屈服,stack ide targets
将返回一个目标列表,您可以从中进行一些抨击以获取测试套件列表。像这样的东西:
stack ide targets 2>&1 |
while IFS=: read pkg type suite; do
[[ $type = test ]] && stack test ":$suite" --test-arguments="--jxml=test-results/$suite.xml"
done
推荐阅读
- html - 如何为下降线的部分着色?
- pine-script - 如何将形状垂直放置在条形上方 5 次?
- python - 根据索引向量替换数组的值
- python - Python selenium 查找复选框
- r - ggplot:两组的geom_line和geom_point叠加顺序?
- c# - Unity中的环境变量在开发和生产之间有所不同
- database - 如何从 000webhost 免费计划中恢复 WordPress 数据库,因为我错误地删除了我的数据库?
- c# - 如果我的玩家没有在 2D 中移动,碰撞器不会触发
- python - 获取字典键的值作为字典列表中的列表,无需循环
- python - 使用 Pandas df 将研发费用资本化