• <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帶參數

            測試中想通過命令行傳遞一些參數給test func,網上找了一些資料但過程不是很順利,這里記錄一下。
            首先go test有一個-args的參數說可以達到這個目的,但實測下來發現有沒有沒區別。。。
            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()執行之前完成,我這里在test文件里面用全局變量完成,但a可以放在函數里面。
            var (
                
            // Define global args flags.
                pA = flag.Int("a"0,  "a.")
                a 
            = 0
            )
            2. parse flag,這個要在test func執行之前,所以可以考慮加入一個init()在test文件里。
            func init() {
                flag.Parse()
                a 
            = *pA
            }
            后面使用這些變量就沒有問題了,比如這樣
            func TestInit(t *testing.T) {
                flag.Parse()
                t.Log(
            "a = ", a)
            }
            這里用到的主要是flag的功能,測試用發現有沒有-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如何使用自定義參數/

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

            亚洲日韩欧美一区久久久久我| 久久午夜福利电影| 国产欧美久久久精品影院| 国产精品欧美久久久久天天影视| 国产精品一久久香蕉国产线看观看| 日本欧美国产精品第一页久久| 91精品国产91热久久久久福利| 99久久综合狠狠综合久久止| 97精品久久天干天天天按摩 | 久久精品国产精品亚洲精品 | 久久精品国产精品亜洲毛片| 精品午夜久久福利大片| 国产精品一久久香蕉产线看| 91精品国产9l久久久久| 青青热久久综合网伊人| 久久av免费天堂小草播放| 久久久久久极精品久久久 | 亚洲日本久久久午夜精品| 狠狠色丁香久久婷婷综合蜜芽五月| 亚洲欧美久久久久9999| 久久人做人爽一区二区三区| 久久久免费精品re6| 久久精品成人国产午夜| 久久综合九色综合欧美就去吻| 久久久久久午夜精品| 久久99国产综合精品免费| 91精品国产高清久久久久久国产嫩草 | 国产综合成人久久大片91| 伊人久久一区二区三区无码| 国产69精品久久久久久人妻精品| 久久精品亚洲中文字幕无码麻豆| 久久精品成人免费看| 国产精品美女久久福利网站| 久久久av波多野一区二区| 国内精品久久九九国产精品| 久久久久综合中文字幕| 大香网伊人久久综合网2020| 人人妻久久人人澡人人爽人人精品| 五月丁香综合激情六月久久| 99久久99久久精品国产| 久久青青色综合|