我正在使用NPM使用go 1.11模块管理go软件包的构建/测试/版本生命周期。在发布之前,我想检查“一切”,包括模块,因此我运行:go test all
(在所有包含的模块中运行测试)。
问题是,在某些Mac版本/环境(包括我的Mac)中,go 1.11.5中的标准os
软件包(至少)失败了。就我的目的而言,这是可以的并且无关紧要的,因为失败是我不使用的功能。但是,这导致发布过程失败,因为go test
以非零状态退出。
关于如何处理此问题的任何建议?
如果有一种方法可以对本地测试(go test all -relevant
)的调用树中的函数运行所有测试,那就太好了。或者,如果我可以命名并跳过测试,那也可以。
我知道-run
标志,但这似乎无济于事,因为我无法事先知道要运行什么测试,以及{{1}所使用的正则表达式}}不支持否定先行,因此构造正则表达式以排除某些测试会非常繁琐。
-run
测试失败:
os
答案 0 :(得分:1)
您可以使用build constraints选择由OS,体系结构或构建标记运行的测试。对于那些特定于操作系统的功能,只需进行特定于操作系统的测试即可。不应有“预期的失败”之类的东西,这些只是被错误应用的测试。