• <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ù)說可以達(dá)到這個目的,但實(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 閱讀(1955) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            亚洲色大成网站www久久九| 久久久久久国产精品免费免费| 婷婷久久精品国产| 婷婷久久综合九色综合绿巨人| 久久久久se色偷偷亚洲精品av| 无码国产69精品久久久久网站| 国产精品久久久久jk制服| 国产精品成人久久久久三级午夜电影| 国产免费久久精品丫丫| 精品久久久久久久久免费影院| 久久青青草原亚洲av无码app | 无码任你躁久久久久久老妇| 中文字幕无码免费久久| 国产一区二区三区久久| 思思久久精品在热线热| 久久美女人爽女人爽| 一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 | 青青草国产精品久久久久| 久久久久久精品免费看SSS| 久久国产乱子伦精品免费强| 天天综合久久一二三区| 国产精品久久久久久久午夜片| 久久夜色精品国产噜噜亚洲AV | 亚洲精品乱码久久久久久蜜桃图片 | 国产精品久久久亚洲| 精品无码久久久久国产动漫3d | 成人亚洲欧美久久久久| 精品国产VA久久久久久久冰| 亚洲精品国产美女久久久| 亚洲欧美国产日韩综合久久| 久久精品中文字幕一区| 7国产欧美日韩综合天堂中文久久久久| 国产69精品久久久久久人妻精品| 久久成人18免费网站| 国产91久久综合| 国产精品成人久久久久三级午夜电影| 欧美精品一本久久男人的天堂| 久久亚洲AV成人无码国产| 麻豆亚洲AV永久无码精品久久| 色欲av伊人久久大香线蕉影院 | 无码人妻久久一区二区三区蜜桃|