• <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 閱讀(1955) 評論(0)  編輯 收藏 引用

            浪潮AV色综合久久天堂| 午夜精品久久久久久影视777| 日韩精品久久久久久免费| 久久亚洲精品人成综合网| 国产午夜电影久久| 成人久久免费网站| 色综合合久久天天综合绕视看| 麻豆精品久久久久久久99蜜桃 | 久久精品国产亚洲av麻豆蜜芽| 亚洲AV日韩AV天堂久久| 久久亚洲综合色一区二区三区 | 亚洲午夜久久久久久久久久| …久久精品99久久香蕉国产| 一本久道久久综合狠狠躁AV| 日本精品久久久久中文字幕| 久久精品国产AV一区二区三区| 国产精品亚洲美女久久久| 精品人妻久久久久久888| 欧美日韩精品久久久久| 国产成人综合久久精品尤物| 久久精品天天中文字幕人妻| 国内精品综合久久久40p| 久久久久国产成人精品亚洲午夜| 成人国内精品久久久久影院| 日韩精品久久无码人妻中文字幕 | 久久精品这里热有精品| 久久久久久久亚洲Av无码| 精品伊人久久大线蕉色首页| 久久亚洲精品无码观看不卡| 国产日韩欧美久久| 国产成人久久777777| AAA级久久久精品无码区| 日本免费一区二区久久人人澡| 久久久久久久尹人综合网亚洲 | 久久人与动人物a级毛片| 久久这里的只有是精品23| 久久99精品久久久久久水蜜桃| 国产精品久久久久一区二区三区| 精品久久久久久国产牛牛app| 香港aa三级久久三级| 久久精品国产精品亚洲下载|