go test命令參數問題

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

go test命令參數問題

在使用go test對go代碼進行單元測試的時候,遇到關於命令參數的問題,google了一下,沒有找到很好的說明,其實就是一些細節而已。

問題是這樣的,在進行單元測試的時候,我希望輸入一些命令列參數來控製程序的運行。
參考go官方文檔,只需要在go test後面加上-args和參數就可以了
例如

go test -args -classpath E:\testcase HelloWorld

也就是上面的

-classpath E:\testcase HelloWorld

是我輸入的參數,但是卻又這樣的錯誤:

flag provided but not defined:-classpath

意味著go test把-classpath也當成自己的參數去解析了,而不是把-args後面的所有字串都當成是我程式輸入的參數

這沒有辦法,我只好在程式中吧-classpath更改成classpath,於是命令列如下

go test -args classpath E:\testcase HelloWorld

這樣勉強解決了問題,卻因為go test的原因改變了我的來源程式。

另外,當我希望列印調試資訊,也就是為go test增加-v參數的時候,也遇到一個小問題,我是這樣輸入的

go test -v -args classpath E:\testcase HelloWorld

在原始碼這,我通過os.Args去擷取命令列參數,但是-v會被當成我命令列的一個輸入,而不是被忽略。原則上來說,應該是-args以後才被當成是命令列參數,而事實上go test沒有完成這個效果。於是我又只能修改來源程式以完成測試。

go test過程中,需要使用命令列參數的情況比較少,但是我還是遇到了,而且出現了一些意想不到的問題,說明go test並不是很完美。另外我是剛開始接觸go語言,也許有更好的辦法或者理解不對,這裡只是替自己做一個筆記,請多包涵。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.