在具有多个cabal文件的项目中使用堆栈时,在单个目标和多个目标上使用堆栈命令时,详细程度似乎存在差异。
这似乎适用于所有类型的堆栈命令,所以我只举几个例子。
使用stack build sub-project-1
,堆栈将显示它编译的每个模块的进度。但stack build sub-project-1 sub-project-2
或stack build
会突然显示正在处理的目标,而不会显示正在处理的任何模块。
我最近发现的另一个例子是stack test
。我想获得所有美味测试的完整列表,所以我运行了stack test --test-arguments="-l"
。但所有打印出来的都是:
sub-project-1-0.0.0.1: test (suite: run-tests, args: -l)
sub-project-2-0.0.0.1: test (suite: run-tests, args: -l)
Completed 2 action(s).
Log files have been written to: /projdir/.stack-work/logs/
即使我手动指定了我想要的目标,例如:stack test sub-project-1 sub-project-2 --test-arguments="-l"
,它也会给我带来同样无益的输出。
我必须使用一个目标运行堆栈:stack test sub-project-1 --test-arguments="-l"
以获取我正在寻找的任何输出:
sub-project-1-0.0.0.1: test (suite: run-tests, args: -l)
all tests/tasty tests/this is a test
all tests/tasty tests/this is another test
在针对多个软件包运行时,有什么办法可以让堆栈不会压低输出?堆栈详细程度似乎与此无关。他们似乎认为-v
表示"打印出调试语句"
答案 0 :(得分:1)
感谢sjakobi的建议。
最新版本的堆栈有一个选项:--dump-logs
此选项将显示每个操作堆栈的输出对每个目标的影响。