【问题标题】:Golang: How to run "go test" repeatedly without recompiling?Golang:如何在不重新编译的情况下重复运行“go test”?
【发布时间】:2015-04-14 02:05:47
【问题描述】:

有什么方法可以让我轻松多次运行 Go 测试,停止第一次 失败的时间?我当然可以这样做:

for i in {1..1000}; do go test ./mypkg && done

但这会导致每次重新编译,与测试相比非常慢 本身。我想我可以通过巧妙地应用-exec 来做到这一点 flag 和xargs,但我不擅长单行。

同时运行多次并保持理智的奖励积分 如果它在一千次中失败一两次,则详细输出。

【问题讨论】:

    标签: go xargs


    【解决方案1】:

    这可能是新功能 - 但您可以使用-count N 指定重复每个测试的次数。可能值得一提的是,它将通过一次编译运行它们。

    我必须感谢 Florin Păşan 在我们最近的 Github 讨论中注意到这一点。

    【讨论】:

    • 谢谢。可惜go help test没有宣传。
    • 计数和其他标志记录在go help testflag
    【解决方案2】:

    您可以将-c 标志传递给go test,根据帮助:

    将测试二进制文件编译为 pkg.test 但不要运行它。 (其中 pkg 是包导入路径的最后一个元素。)

    所以你至少可以避免每次都重新编译。

    【讨论】:

    • 谢谢!我更喜欢一个罐装的xargs 公式来并行运行并获得良好的失败输出,但这让我大部分时间都在那里。
    • 这如何回答这个问题?问题是如何在不重新编译的情况下运行测试!
    • 这样编译测试后如何运行?
    猜你喜欢
    • 1970-01-01
    • 2014-01-28
    • 2011-04-07
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多