• <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免费久久 | 久久亚洲天堂| 香蕉久久夜色精品国产2020| 香蕉久久夜色精品升级完成| 久久精品国产精品青草| 四虎亚洲国产成人久久精品| 久久婷婷五月综合国产尤物app| 久久综合久久综合久久| 合区精品久久久中文字幕一区| 久久精品国产亚洲AV电影| 久久se精品一区精品二区国产| 性欧美大战久久久久久久久 | 久久久久亚洲AV成人网| 亚洲中文字幕无码一久久区| 99精品久久久久久久婷婷| 人妻无码精品久久亚瑟影视| 国产午夜精品久久久久九九电影| 久久人妻无码中文字幕| 久久久久亚洲精品天堂久久久久久| 日韩精品无码久久久久久| 少妇久久久久久被弄到高潮| 日本久久久久久中文字幕| 久久精品午夜一区二区福利| 一本色道久久综合狠狠躁篇 | 久久大香香蕉国产| 国产精品乱码久久久久久软件| 久久久久久一区国产精品| 久久精品国产91久久综合麻豆自制 | 久久婷婷五月综合色高清| 色老头网站久久网| 久久久久人妻精品一区三寸蜜桃| 久久中文字幕一区二区| 国产亚洲欧美成人久久片| 久久99国产精品二区不卡| 久久不见久久见免费视频7| 亚洲AV日韩精品久久久久久 | 2021国内久久精品| 久久只这里是精品66| 久久天天婷婷五月俺也去 | 久久亚洲欧美日本精品| 亚洲成人精品久久|