• <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)  編輯 收藏 引用

            久久中文字幕人妻丝袜| 性做久久久久久久久浪潮| 久久综合狠狠综合久久| 亚洲天堂久久精品| 久久久久国产精品嫩草影院| 日本福利片国产午夜久久| 久久无码一区二区三区少妇 | 久久久久久久久波多野高潮| 2021精品国产综合久久| 久久精品中文字幕大胸| 久久超乳爆乳中文字幕| 久久大香萑太香蕉av| 欧美亚洲国产精品久久蜜芽 | 久久久噜噜噜久久| 996久久国产精品线观看| 久久人人爽人人爽人人片av麻烦| 91久久九九无码成人网站| 亚洲AV日韩精品久久久久久久| 久久AAAA片一区二区| 91麻精品国产91久久久久| 人妻精品久久无码区| 久久久无码精品亚洲日韩按摩 | 久久精品www人人爽人人| 久久久久se色偷偷亚洲精品av | 久久久久国产精品麻豆AR影院| 久久久无码人妻精品无码| 亚洲中文字幕无码久久综合网| 亚洲精品乱码久久久久久不卡| 国产美女久久久| 97精品久久天干天天天按摩| 亚洲AV无码1区2区久久| 亚洲精品无码久久久久去q| 伊人久久精品无码二区麻豆| 久久精品一本到99热免费| 99精品国产综合久久久久五月天| 久久综合久久综合亚洲| 综合久久国产九一剧情麻豆| 久久久久久久亚洲Av无码| 91精品国产91久久久久福利| 久久99精品综合国产首页| 国内精品伊人久久久久影院对白|