• <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忘忧草18| 日本久久久久久中文字幕| 99久久夜色精品国产网站| 亚洲国产另类久久久精品小说 | 日本精品久久久久中文字幕| 9191精品国产免费久久| 久久综合国产乱子伦精品免费| 久久婷婷人人澡人人| 9191精品国产免费久久| 久久精品国产亚洲av麻豆图片| 久久香综合精品久久伊人| 国产精品欧美久久久久天天影视 | 日韩av无码久久精品免费| 国产精品免费久久久久影院 | 天天爽天天爽天天片a久久网| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 亚洲国产精品无码久久一线| 日本一区精品久久久久影院| 精品多毛少妇人妻AV免费久久| 国产精品久久久久天天影视| 97精品依人久久久大香线蕉97| 91性高湖久久久久| 色综合久久最新中文字幕| 亚洲国产精品成人久久| 久久天天躁狠狠躁夜夜avapp| 精品欧美一区二区三区久久久| 久久久中文字幕日本| 久久国产乱子伦精品免费强| 99久久精品九九亚洲精品| 91精品国产乱码久久久久久 | 精品久久久久久国产牛牛app| 麻豆一区二区99久久久久| 久久久久久精品无码人妻| 亚洲精品NV久久久久久久久久| 久久综合成人网| 久久伊人精品一区二区三区| 国产免费久久精品99re丫y|