• <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   管理


            热99re久久国超精品首页| 精品多毛少妇人妻AV免费久久| 超级97碰碰碰碰久久久久最新| 久久热这里只有精品在线观看| 99久久免费国产特黄| 理论片午午伦夜理片久久 | 国产精品久久精品| 久久久久久久久久免免费精品| 亚洲va中文字幕无码久久| 久久99免费视频| 伊人久久大香线蕉av不变影院| 国产2021久久精品| 91精品国产91久久久久福利| 久久国产精品无| 99久久亚洲综合精品成人| 亚洲AV无码久久精品色欲| 国产一区二区精品久久| 国产三级精品久久| 久久99国产精品久久99果冻传媒| 天天影视色香欲综合久久| 免费国产99久久久香蕉| 国产精品久久久久AV福利动漫| 精品综合久久久久久98| 亚洲婷婷国产精品电影人久久| 国产精品99久久久久久猫咪 | 亚洲国产欧洲综合997久久| 欧美成a人片免费看久久| 欧美久久综合性欧美| 国产成人综合久久综合| 久久久久亚洲av无码专区喷水 | 久久久久亚洲精品天堂| 亚洲精品乱码久久久久久中文字幕 | 国产精品99精品久久免费| 亚洲午夜久久久久久久久久| 久久久久久久综合狠狠综合| 久久久久久久久久免免费精品| 久久国产精品二国产精品 | 一级女性全黄久久生活片免费| 久久精品国产亚洲Aⅴ蜜臀色欲| 国产精品VIDEOSSEX久久发布| 中文字幕亚洲综合久久|