• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            ++wythern++

            X presents Y for a better Z

            go test 用args帶參數(shù)

            測試中想通過命令行傳遞一些參數(shù)給test func,網(wǎng)上找了一些資料但過程不是很順利,這里記錄一下。
            首先go test有一個-args的參數(shù)說可以達到這個目的,但實測下來發(fā)現(xiàn)有沒有沒區(qū)別。。。
            google查到的大部分也是用到了flag類型。
            flag.go的注釋寫的比較清楚
            /*
                Package flag implements command-line flag parsing.

                Usage:

                Define flags using flag.String(), Bool(), Int(), etc.

                This declares an integer flag, -flagname, stored in the pointer ip, with type *int.
                    import "flag"
                    var ip = flag.Int("flagname", 1234, "help message for flagname")
                If you like, you can bind the flag to a variable using the Var() functions.
                    var flagvar int
                    func init() {
                        flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
                    }
                Or you can create custom flags that satisfy the Value interface (with
                pointer receivers) and couple them to flag parsing by
                    flag.Var(&flagVal, "name", "help message for flagname")
                For such flags, the default value is just the initial value of the variable.

                After all flags are defined, call
                    flag.Parse()
                to parse the command line into the defined flags.

            */
            因此需要做的事情就是:
            1. 定義flag,這個需要在main()執(zhí)行之前完成,我這里在test文件里面用全局變量完成,但a可以放在函數(shù)里面。
            var (
                
            // Define global args flags.
                pA = flag.Int("a"0,  "a.")
                a 
            = 0
            )
            2. parse flag,這個要在test func執(zhí)行之前,所以可以考慮加入一個init()在test文件里。
            func init() {
                flag.Parse()
                a 
            = *pA
            }
            后面使用這些變量就沒有問題了,比如這樣
            func TestInit(t *testing.T) {
                flag.Parse()
                t.Log(
            "a = ", a)
            }
            這里用到的主要是flag的功能,測試用發(fā)現(xiàn)有沒有-args問題不大,所以這個用法可能不是很符合go test的要求,先用起來再說了。
            REF
            1. https://www.golangtc.com/t/584cbd16b09ecc2e1800000b
            2. https://stackoverflow.com/.../process-command-line-arguments-in-go-test
            3. https://hsulei.com/2017/08/23/gotest如何使用自定義參數(shù)/

            posted on 2018-08-14 17:04 wythern 閱讀(1942) 評論(0)  編輯 收藏 引用

            狠狠人妻久久久久久综合蜜桃| av色综合久久天堂av色综合在 | 欧美精品久久久久久久自慰| 亚洲欧美日韩精品久久亚洲区| 欧美日韩精品久久久久| 亚洲人成网亚洲欧洲无码久久 | 国产精品一区二区久久国产| 国产午夜精品久久久久九九电影| 久久综合九色综合欧美就去吻| 久久香蕉国产线看观看精品yw| 99国内精品久久久久久久| 久久国产精品无| 久久91这里精品国产2020| 久久精品国产亚洲av影院| 久久无码国产| 久久91综合国产91久久精品| 久久精品国产亚洲AV忘忧草18| 国产精品成人无码久久久久久 | 91性高湖久久久久| 欧美牲交A欧牲交aⅴ久久| 久久天天躁狠狠躁夜夜av浪潮| 国产精品久久久天天影视| 久久人妻少妇嫩草AV蜜桃| 精品乱码久久久久久夜夜嗨| 91久久婷婷国产综合精品青草| 色综合久久久久无码专区| 久久国产精品偷99| 国产A级毛片久久久精品毛片| 丁香狠狠色婷婷久久综合| 久久婷婷五月综合97色| 久久婷婷五月综合成人D啪| 久久青青国产| 久久精品亚洲乱码伦伦中文| 国产免费久久精品丫丫| 一本一道久久精品综合| 欧美精品一区二区精品久久| 九九久久99综合一区二区| 伊人久久大香线蕉影院95| 91精品国产高清久久久久久国产嫩草| 精品999久久久久久中文字幕| 精品综合久久久久久97超人|