Haskell MINGW64上的堆栈测试输出出现混乱
我在Windows10上使用Stack运行GHC,并在日常工作流程中使用GitBash(MINGW64)。这包括使用GHC和GHCi,它们通常工作良好 但是,当我从MINGW64运行Haskell MINGW64上的堆栈测试输出出现混乱,haskell,ghc,haskell-stack,mingw-w64,Haskell,Ghc,Haskell Stack,Mingw W64,我在Windows10上使用Stack运行GHC,并在日常工作流程中使用GitBash(MINGW64)。这包括使用GHC和GHCi,它们通常工作良好 但是,当我从MINGW64运行堆栈测试时,输出被ANSI颜色代码弄乱: $ stack test UC-0.1.0.0: test (suite: UC-test) [?25lSorting Group 1: [2K[1F prop1: [[92mOK, passed 100 tests[0m] [2K[1F prop2: [[92mO
堆栈测试时,输出被ANSI颜色代码弄乱:
$ stack test
UC-0.1.0.0: test (suite: UC-test)
[?25lSorting Group 1:
[2K[1F prop1: [[92mOK, passed 100 tests[0m]
[2K[1F prop2: [[92mOK, passed 100 tests[0m]
Properties Total
Passed [92m2[0m [92m2[0m
Failed 0 0
Total [92m2[0m [92m2[0m
[?25h
奇怪的是,如果我从普通的Windows控制台(cmd
)运行堆栈测试
,它会正确显示:
我希望继续使用我的(Git)Bash控制台,而不必使用两个单独的控制台窗口,因此:
- 是否有可能在MINGW64中为
堆栈测试
获得正确渲染的颜色
- 或者,我是否可以为
堆栈测试关闭ANSI着色功能,以便至少更容易读取输出
我还尝试运行了不同的堆栈--color never test
,但似乎没有任何区别。参数可以像这样传递给测试可执行文件:
stack test --test-arguments "--plain"
--plain
是在测试框架中删除颜色的选项,而--color never
是从tasty删除的。我在Windows 10、Git 2.17.0和MINGW64作为Git Bash shell上也遇到过同样的问题。在我运行“php artisan tinker”之前,颜色是好的,之后颜色停止,所有输出突然被ANSI颜色代码弄乱
我的解决方案是(让我惊讶的是它居然奏效):在Git Bash shell中运行Bash
之前:
$ php artisan tinker
?[34mPsy Shell v0.7.2 (PHP 7.1.11 ΓÇö cli) by Justin Hileman?[39m
>>> exit
?[37;41mExit: Goodbye.?[39;49m
$
之后:
$ bash
$ php artisan tinker
Psy Shell v0.7.2 (PHP 7.1.11 — cli) by Justin Hileman
>>> exit
Exit: Goodbye.
$
这确实是一种变通办法,但它是有效的。也许这是一个线索,以实际的根本问题。终端类型似乎无关紧要(xterm、xterm-256等),但都尝试过,差别不大 看起来不是这样的。。。当我将其复制到bash中并运行它时,我得到了“无法理解这些额外参数:从不”——在tasty中,颜色从不是一个选项。您正在使用另一个测试框架吗?测试框架改为--plain
。通常,您可以尝试向测试可执行文件询问--help
。谢谢,--plain
确实会删除着色。我确实试过了--help
,但我没想到。我会接受这个答案,尽管这是我希望的下一个最好的答案……很有趣。不幸的是,这并不能解决我的问题,但谢谢分享:)