Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

go.testEnvFile doesn't substitute nested env variables #1902

Closed
jackbow opened this issue Nov 19, 2021 · 4 comments
Closed

go.testEnvFile doesn't substitute nested env variables #1902

jackbow opened this issue Nov 19, 2021 · 4 comments
Labels
debug/config Issues for config discrepancies b/n settings.json, launch.json, launch with F5, run test, debug test Debug Issues related to the debugging functionality of the extension. FeatureRequest HelpWanted Issues that are not prioritized by the maintainers. Help is requested from community contributors.
Milestone

Comments

@jackbow
Copy link

jackbow commented Nov 19, 2021

What version of Go, VS Code & VS Code Go extension are you using?

Version Information
  • Run go version to get version of Go from the VS Code integrated terminal.
    • go1.17.2 darwin/amd64
  • Run gopls -v version to get version of Gopls from the VS Code integrated terminal.
    • v0.7.3
  • Run code -v or code-insiders -v to get version of VS Code or VS Code Insiders.
    • 1.62.2
  • Check your installed extensions to get the version of the VS Code Go extension
    • v0.29.0
  • Run Ctrl+Shift+P (Cmd+Shift+P on Mac OS) > Go: Locate Configured Go Tools command.
Checking configured tools....
GOBIN: /Users/jackbow/golang/bin
toolsGopath: 
gopath: /Users/jackbow/golang
GOROOT: /usr/local/opt/go/libexec
PATH: /usr/local/opt/go/libexec/bin:/Users/jackbow/.rvm/gems/jruby-9.2.9.0/bin:/Users/jackbow/.rvm/gems/jruby-9.2.9.0@global/bin:/Users/jackbow/.rvm/rubies/jruby-9.2.9.0/bin:/usr/local/opt/libpq/bin:/Users/jackbow/.volta/bin:/Users/jackbow/Applications/miniconda3/bin:/Users/jackbow/Applications/miniconda3/condabin:/Users/jackbow/.rbenv/shims:/Applications/Julia-1.1.app/Contents/Resources/julia/bin:/Users/jackbow/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/Users/jackbow/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/opt/X11/bin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/Users/jackbow/.cargo/bin:/Users/jackbow/.fig/bin:/usr/local/opt/fzf/bin:/Users/jackbow/.rvm/bin:/Users/jackbow/golang
PATH (vscode launched with): /Users/jackbow/.rvm/gems/jruby-9.2.9.0/bin:/Users/jackbow/.rvm/gems/jruby-9.2.9.0@global/bin:/Users/jackbow/.rvm/rubies/jruby-9.2.9.0/bin:/usr/local/opt/libpq/bin:/Users/jackbow/.volta/bin:/Users/jackbow/Applications/miniconda3/bin:/Users/jackbow/Applications/miniconda3/condabin:/Users/jackbow/.rbenv/shims:/Applications/Julia-1.1.app/Contents/Resources/julia/bin:/Users/jackbow/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/Users/jackbow/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/opt/X11/bin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/Users/jackbow/.cargo/bin:/Users/jackbow/.fig/bin:/usr/local/opt/fzf/bin:/Users/jackbow/.rvm/bin:/Users/jackbow/golang:/usr/local/opt/go/libexec/bin

	go:	/usr/local/opt/go/libexec/bin/go: go version go1.17.2 darwin/amd64

	gopkgs:	/Users/jackbow/golang/bin/gopkgs: go1.17.2
		path	github.com/uudashr/gopkgs/v2/cmd/gopkgs
		mod	github.com/uudashr/gopkgs/v2	v2.1.2	h1:A0+QH6wqNRHORJnxmqfeuBEsK4nYQ7pgcOHhqpqcrpo=
		dep	github.com/karrick/godirwalk	v1.12.0	h1:nkS4xxsjiZMvVlazd0mFyiwD4BR9f3m6LXGhM2TUx3Y=
		dep	github.com/pkg/errors	v0.8.1	h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
	
	go-outline:	/Users/jackbow/golang/bin/go-outline: go1.17.2
		path	github.com/ramya-rao-a/go-outline
		mod	github.com/ramya-rao-a/go-outline	v0.0.0-20210608161538-9736a4bde949	h1:iaD+iVf9xGfajsJp+zYrg9Lrk6gMJ6/hZHO4cYq5D5o=
		dep	golang.org/x/tools	v0.1.1	h1:wGiQel/hW0NnEkJUk8lbzkX2gFJU6PFxf1v5OlCfuOs=
	
	gotests:	/Users/jackbow/golang/bin/gotests: go1.17.2
		path	github.com/cweill/gotests/gotests
		mod	github.com/cweill/gotests	v1.6.0	h1:KJx+/p4EweijYzqPb4Y/8umDCip1Cv6hEVyOx0mE9W8=
		dep	golang.org/x/tools	v0.0.0-20191109212701-97ad0ed33101	h1:LCmXVkvpQCDj724eX6irUTPCJP5GelFHxqGSWL2D1R0=
	
	gomodifytags:	/Users/jackbow/golang/bin/gomodifytags: go1.17.2
		path	github.com/fatih/gomodifytags
		mod	github.com/fatih/gomodifytags	v1.16.0	h1:B65npXIXSk44F6c1hZGE1NazSnt+eXvtdEOG2Uy+QdU=
		dep	github.com/fatih/camelcase	v1.0.0	h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
		dep	github.com/fatih/structtag	v1.2.0	h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
		dep	golang.org/x/tools	v0.0.0-20180824175216-6c1c5e93cdc1	h1:EAPsk8kfGCjxQagrkWjzXlUWe2p3gj5MknO+z2o9GKc=
	
	impl:	/Users/jackbow/golang/bin/impl: go1.17.2
		path	github.com/josharian/impl
		mod	github.com/josharian/impl	v1.1.0	h1:gafhg1OFVMq46ifdkBa8wp4hlGogjktjjA5h/2j4+2k=
		dep	golang.org/x/mod	v0.2.0	h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
		dep	golang.org/x/tools	v0.0.0-20200522201501-cb1345f3a375	h1:SjQ2+AKWgZLc1xej6WSzL+Dfs5Uyd5xcZH1mGC411IA=
		dep	golang.org/x/xerrors	v0.0.0-20191204190536-9bdfabe68543	h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
	
	goplay:	/Users/jackbow/golang/bin/goplay: go1.17.2
		path	github.com/haya14busa/goplay/cmd/goplay
		mod	github.com/haya14busa/goplay	v1.0.0	h1:ED4BMrGQ3WH7H3YXrcnWMVzj1xeSepaYTkLh1DtFi/4=
		dep	github.com/skratchdot/open-golang	v0.0.0-20200116055534-eef842397966	h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA=
	
	dlv:	/Users/jackbow/golang/bin/dlv: go1.17.2
		path	github.com/go-delve/delve/cmd/dlv
		mod	github.com/go-delve/delve	v1.7.2	h1:QTDJlgx9OwUVYVm7xthyf2XHKrZcTQu3wkRbovktidM=
		dep	github.com/cosiner/argv	v0.1.0	h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=
		dep	github.com/cpuguy83/go-md2man/v2	v2.0.0	h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
		dep	github.com/derekparker/trie	v0.0.0-20200317170641-1fdf38b7b0e9	h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY=
		dep	github.com/google/go-dap	v0.5.1-0.20210713061233-c91b005e3987	h1:aghNk+kvabZ5I1OC3cNHWvfZ8svcoDLAGyKYimqyGVk=
		dep	github.com/hashicorp/golang-lru	v0.5.4	h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
		dep	github.com/mattn/go-isatty	v0.0.3	h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI=
		dep	github.com/peterh/liner	v0.0.0-20170317030525-88609521dc4b	h1:8uaXtUkxiy+T/zdLWuxa/PG4so0TPZDZfafFNNSaptE=
		dep	github.com/russross/blackfriday/v2	v2.0.1	h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
		dep	github.com/shurcooL/sanitized_anchor_name	v1.0.0	h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
		dep	github.com/sirupsen/logrus	v1.6.0	h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
		dep	github.com/spf13/cobra	v1.1.3	h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M=
		dep	github.com/spf13/pflag	v1.0.5	h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
		dep	go.starlark.net	v0.0.0-20200821142938-949cc6f4b097	h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg=
		dep	golang.org/x/arch	v0.0.0-20190927153633-4e8777c89be4	h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=
		dep	golang.org/x/sys	v0.0.0-20210514084401-e8d321eab015	h1:hZR0X1kPW+nwyJ9xRxqZk1vx5RUObAPBdKVvXPDUH/E=
		dep	gopkg.in/yaml.v2	v2.4.0	h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
	
	dlv-dap:	/Users/jackbow/golang/bin/dlv-dap: go1.17.2
		path	github.com/go-delve/delve/cmd/dlv
		mod	github.com/go-delve/delve	v1.7.3-0.20211109082426-9013a121d8bc	h1:W/nYlpoFw1KtHtNzPnZ6N8OoVm8734cWSwhMnXGrc/4=
		dep	github.com/cilium/ebpf	v0.7.0	h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k=
		dep	github.com/cosiner/argv	v0.1.0	h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=
		dep	github.com/cpuguy83/go-md2man/v2	v2.0.0	h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
		dep	github.com/derekparker/trie	v0.0.0-20200317170641-1fdf38b7b0e9	h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY=
		dep	github.com/google/go-dap	v0.6.0	h1:Y1RHGUtv3R8y6sXq2dtGRMYrFB2hSqyFVws7jucrzX4=
		dep	github.com/hashicorp/golang-lru	v0.5.4	h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
		dep	github.com/mattn/go-isatty	v0.0.3	h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI=
		dep	github.com/mattn/go-runewidth	v0.0.3	h1:a+kO+98RDGEfo6asOGMmpodZq4FNtnGP54yps8BzLR4=
		dep	github.com/peterh/liner	v1.2.1	h1:O4BlKaq/LWu6VRWmol4ByWfzx6MfXc5Op5HETyIy5yg=
		dep	github.com/russross/blackfriday/v2	v2.0.1	h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
		dep	github.com/shurcooL/sanitized_anchor_name	v1.0.0	h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
		dep	github.com/sirupsen/logrus	v1.6.0	h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
		dep	github.com/spf13/cobra	v1.1.3	h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M=
		dep	github.com/spf13/pflag	v1.0.5	h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
		dep	go.starlark.net	v0.0.0-20200821142938-949cc6f4b097	h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg=
		dep	golang.org/x/arch	v0.0.0-20190927153633-4e8777c89be4	h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=
		dep	golang.org/x/sys	v0.0.0-20211019181941-9d821ace8654	h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0=
		dep	gopkg.in/yaml.v2	v2.4.0	h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
	
	golangci-lint:	/Users/jackbow/golang/bin/golangci-lint: go1.17.2
		path	github.com/golangci/golangci-lint/cmd/golangci-lint
		mod	github.com/golangci/golangci-lint	v1.43.0	h1:SLwZFEmDgopqZpfP495zCtV9REUf551JJlJ51Ql7NZA=
		dep	4d63.com/gochecknoglobals	v0.1.0	h1:zeZSRqj5yCg28tCkIV/z/lWbwvNm5qnKVS15PI8nhD0=
		dep	github.com/Antonboom/errname	v0.1.5	h1:IM+A/gz0pDhKmlt5KSNTVAvfLMb+65RxavBXpRtCUEg=
		dep	github.com/Antonboom/nilnil	v0.1.0	h1:DLDavmg0a6G/F4Lt9t7Enrbgb3Oph6LnDE6YVsmTt74=
		dep	github.com/BurntSushi/toml	v0.4.1	h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw=
		dep	github.com/Djarvur/go-err113	v0.0.0-20210108212216-aea10b59be24	h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM=
		dep	github.com/Masterminds/semver	v1.5.0	h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
		dep	github.com/OpenPeeDeeP/depguard	v1.0.1	h1:VlW4R6jmBIv3/u1JNlawEvJMM4J+dPORPaZasQee8Us=
		dep	github.com/alexkohler/prealloc	v1.0.0	h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw=
		dep	github.com/ashanbrown/forbidigo	v1.2.0	h1:RMlEFupPCxQ1IogYOQUnIQwGEUGK8g5vAPMRyJoSxbc=
		dep	github.com/ashanbrown/makezero	v0.0.0-20210520155254-b6261585ddde	h1:YOsoVXsZQPA9aOTy1g0lAJv5VzZUvwQuZqug8XPeqfM=
		dep	github.com/beorn7/perks	v1.0.1	h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
		dep	github.com/bkielbasa/cyclop	v1.2.0	h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A=
		dep	github.com/blizzy78/varnamelen	v0.3.0	h1:80mYO7Y5ppeEefg1Jzu+NBg16iwToOQVnDnNIoWSShs=
		dep	github.com/bombsimon/wsl/v3	v3.3.0	h1:Mka/+kRLoQJq7g2rggtgQsjuI/K5Efd87WX96EWFxjM=
		dep	github.com/breml/bidichk	v0.1.1	h1:Qpy8Rmgos9qdJxhka0K7ADEE5bQZX9PQUthkgggHpFM=
		dep	github.com/butuzov/ireturn	v0.1.1	h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY=
		dep	github.com/cespare/xxhash/v2	v2.1.1	h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
		dep	github.com/charithe/durationcheck	v0.0.9	h1:mPP4ucLrf/rKZiIG/a9IPXHGlh8p4CzgpyTy6EEutYk=
		dep	github.com/chavacava/garif	v0.0.0-20210405164556-e8a0a408d6af	h1:spmv8nSH9h5oCQf40jt/ufBCt9j0/58u4G+rkeMqXGI=
		dep	github.com/daixiang0/gci	v0.2.9	h1:iwJvwQpBZmMg31w+QQ6jsyZ54KEATn6/nfARbBNW294=
		dep	github.com/davecgh/go-spew	v1.1.1	h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
		dep	github.com/denis-tingajkin/go-header	v0.4.2	h1:jEeSF4sdv8/3cT/WY8AgDHUoItNSoEZ7qg9dX7pc218=
		dep	github.com/esimonov/ifshort	v1.0.3	h1:JD6x035opqGec5fZ0TLjXeROD2p5H7oLGn8MKfy9HTM=
		dep	github.com/ettle/strcase	v0.1.1	h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw=
		dep	github.com/fatih/color	v1.13.0	h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
		dep	github.com/fatih/structtag	v1.2.0	h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
		dep	github.com/fsnotify/fsnotify	v1.5.1	h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
		dep	github.com/fzipp/gocyclo	v0.3.1	h1:A9UeX3HJSXTBzvHzhqoYVuE0eAhe+aM8XBCCwsPMZOc=
		dep	github.com/go-critic/go-critic	v0.6.1	h1:lS8B9LH/VVsvQQP7Ao5TJyQqteVKVs3E4dXiHMyubtI=
		dep	github.com/go-toolsmith/astcast	v1.0.0	h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g=
		dep	github.com/go-toolsmith/astcopy	v1.0.0	h1:OMgl1b1MEpjFQ1m5ztEO06rz5CUd3oBv9RF7+DyvdG8=
		dep	github.com/go-toolsmith/astequal	v1.0.1	h1:JbSszi42Jiqu36Gnf363HWS9MTEAz67vTQLponh3Moc=
		dep	github.com/go-toolsmith/astfmt	v1.0.0	h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k=
		dep	github.com/go-toolsmith/astp	v1.0.0	h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg=
		dep	github.com/go-toolsmith/strparse	v1.0.0	h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUDxe2Jb4=
		dep	github.com/go-toolsmith/typep	v1.0.2	h1:8xdsa1+FSIH/RhEkgnD1j2CJOy5mNllW1Q9tRiYwvlk=
		dep	github.com/go-xmlfmt/xmlfmt	v0.0.0-20191208150333-d5b6f63a941b	h1:khEcpUM4yFcxg4/FHQWkvVRmgijNXRfzkIDHh23ggEo=
		dep	github.com/gobwas/glob	v0.2.3	h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
		dep	github.com/gofrs/flock	v0.8.1	h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
		dep	github.com/golang/protobuf	v1.5.2	h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
		dep	github.com/golangci/check	v0.0.0-20180506172741-cfe4005ccda2	h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0=
		dep	github.com/golangci/dupl	v0.0.0-20180902072040-3e9179ac440a	h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM=
		dep	github.com/golangci/go-misc	v0.0.0-20180628070357-927a3d87b613	h1:9kfjN3AdxcbsZBf8NjltjWihK2QfBBBZuv91cMFfDHw=
		dep	github.com/golangci/gofmt	v0.0.0-20190930125516-244bba706f1a	h1:iR3fYXUjHCR97qWS8ch1y9zPNsgXThGwjKPrYfqMPks=
		dep	github.com/golangci/lint-1	v0.0.0-20191013205115-297bf364a8e0	h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA=
		dep	github.com/golangci/maligned	v0.0.0-20180506175553-b1d89398deca	h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA=
		dep	github.com/golangci/misspell	v0.3.5	h1:pLzmVdl3VxTOncgzHcvLOKirdvcx/TydsClUQXTehjo=
		dep	github.com/golangci/revgrep	v0.0.0-20210930125155-c22e5001d4f2	h1:SgM7GDZTxtTTQPU84heOxy34iG5Du7F2jcoZnvp+fXI=
		dep	github.com/golangci/unconvert	v0.0.0-20180507085042-28b1c447d1f4	h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys=
		dep	github.com/google/go-cmp	v0.5.6	h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
		dep	github.com/gordonklaus/ineffassign	v0.0.0-20210225214923-2e10b2664254	h1:Nb2aRlC404yz7gQIfRZxX9/MLvQiqXyiBTJtgAy6yrI=
		dep	github.com/gostaticanalysis/analysisutil	v0.7.1	h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk=
		dep	github.com/gostaticanalysis/comment	v1.4.2	h1:hlnx5+S2fY9Zo9ePo4AhgYsYHbM2+eAv8m/s1JiCd6Q=
		dep	github.com/gostaticanalysis/forcetypeassert	v0.0.0-20200621232751-01d4955beaa5	h1:rx8127mFPqXXsfPSo8BwnIU97MKFZc89WHAHt8PwDVY=
		dep	github.com/gostaticanalysis/nilerr	v0.1.1	h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk=
		dep	github.com/hashicorp/errwrap	v1.0.0	h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
		dep	github.com/hashicorp/go-multierror	v1.1.1	h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
		dep	github.com/hashicorp/hcl	v1.0.0	h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
		dep	github.com/jgautheron/goconst	v1.5.1	h1:HxVbL1MhydKs8R8n/HE5NPvzfaYmQJA3o879lE4+WcM=
		dep	github.com/jingyugao/rowserrcheck	v1.1.1	h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs=
		dep	github.com/jirfag/go-printf-func-name	v0.0.0-20200119135958-7558a9eaa5af	h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48=
		dep	github.com/julz/importas	v0.0.0-20210419104244-841f0c0fe66d	h1:XeSMXURZPtUffuWAaq90o6kLgZdgu+QA8wk4MPC8ikI=
		dep	github.com/kisielk/errcheck	v1.6.0	h1:YTDO4pNy7AUN/021p+JGHycQyYNIyMoenM1YDVK6RlY=
		dep	github.com/kisielk/gotool	v1.0.0	h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=
		dep	github.com/kulti/thelper	v0.4.0	h1:2Nx7XbdbE/BYZeoip2mURKUdtHQRuy6Ug+wR7K9ywNM=
		dep	github.com/kunwardeep/paralleltest	v1.0.3	h1:UdKIkImEAXjR1chUWLn+PNXqWUGs//7tzMeWuP7NhmI=
		dep	github.com/kyoh86/exportloopref	v0.1.8	h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M=
		dep	github.com/ldez/gomoddirectives	v0.2.2	h1:p9/sXuNFArS2RLc+UpYZSI4KQwGMEDWC/LbtF5OPFVg=
		dep	github.com/ldez/tagliatelle	v0.2.0	h1:693V8Bf1NdShJ8eu/s84QySA0J2VWBanVBa2WwXD/Wk=
		dep	github.com/magiconair/properties	v1.8.5	h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls=
		dep	github.com/maratori/testpackage	v1.0.1	h1:QtJ5ZjqapShm0w5DosRjg0PRlSdAdlx+W6cCKoALdbQ=
		dep	github.com/matoous/godox	v0.0.0-20210227103229-6504466cf951	h1:pWxk9e//NbPwfxat7RXkts09K+dEBJWakUWwICVqYbA=
		dep	github.com/mattn/go-colorable	v0.1.11	h1:nQ+aFkoE2TMGc0b68U2OKSexC+eq46+XwZzWXHRmPYs=
		dep	github.com/mattn/go-isatty	v0.0.14	h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
		dep	github.com/mattn/go-runewidth	v0.0.9	h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
		dep	github.com/matttproud/golang_protobuf_extensions	v1.0.1	h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
		dep	github.com/mbilski/exhaustivestruct	v1.2.0	h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo=
		dep	github.com/mgechev/dots	v0.0.0-20210922191527-e955255bf517	h1:zpIH83+oKzcpryru8ceC6BxnoG8TBrhgAvRg8obzup0=
		dep	github.com/mgechev/revive	v1.1.2	h1:MiYA/o9M7REjvOF20QN43U8OtXDDHQFKLCtJnxLGLog=
		dep	github.com/mitchellh/go-homedir	v1.1.0	h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
		dep	github.com/mitchellh/mapstructure	v1.4.2	h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo=
		dep	github.com/moricho/tparallel	v0.2.1	h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4=
		dep	github.com/nakabonne/nestif	v0.3.1	h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U=
		dep	github.com/nbutton23/zxcvbn-go	v0.0.0-20210217022336-fa2cb2858354	h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA=
		dep	github.com/nishanths/exhaustive	v0.2.3	h1:+ANTMqRNrqwInnP9aszg/0jDo+zbXa4x66U19Bx/oTk=
		dep	github.com/nishanths/predeclared	v0.2.1	h1:1TXtjmy4f3YCFjTxRd8zcFHOmoUir+gp0ESzjFzG2sw=
		dep	github.com/olekukonko/tablewriter	v0.0.5	h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
		dep	github.com/pelletier/go-toml	v1.9.4	h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=
		dep	github.com/phayes/checkstyle	v0.0.0-20170904204023-bfd46e6a821d	h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA=
		dep	github.com/pkg/errors	v0.9.1	h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
		dep	github.com/pmezard/go-difflib	v1.0.0	h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
		dep	github.com/polyfloyd/go-errorlint	v0.0.0-20210722154253-910bb7978349	h1:Kq/3kL0k033ds3tyez5lFPrfQ74fNJ+OqCclRipubwA=
		dep	github.com/prometheus/client_golang	v1.7.1	h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA=
		dep	github.com/prometheus/client_model	v0.2.0	h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
		dep	github.com/prometheus/common	v0.10.0	h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc=
		dep	github.com/prometheus/procfs	v0.6.0	h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4=
		dep	github.com/quasilyte/go-ruleguard	v0.3.13	h1:O1G41cq1jUr3cJmqp7vOUT0SokqjzmS9aESWJuIDRaY=
		dep	github.com/quasilyte/regex/syntax	v0.0.0-20200407221936-30656e2c4a95	h1:L8QM9bvf68pVdQ3bCFZMDmnt9yqcMBro1pC7F+IPYMY=
		dep	github.com/ryancurrah/gomodguard	v1.2.3	h1:ww2fsjqocGCAFamzvv/b8IsRduuHHeK2MHTcTxZTQX8=
		dep	github.com/ryanrolds/sqlclosecheck	v0.3.0	h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw=
		dep	github.com/sanposhiho/wastedassign/v2	v2.0.6	h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA=
		dep	github.com/securego/gosec/v2	v2.9.1	h1:anHKLS/ApTYU6NZkKa/5cQqqcbKZURjvc+MtR++S4EQ=
		dep	github.com/shazow/go-diff	v0.0.0-20160112020656-b6b7b6733b8c	h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU=
		dep	github.com/sirupsen/logrus	v1.8.1	h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
		dep	github.com/sivchari/tenv	v1.4.7	h1:FdTpgRlTue5eb5nXIYgS/lyVXSjugU8UUVDwhP1NLU8=
		dep	github.com/sonatard/noctx	v0.0.1	h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY=
		dep	github.com/sourcegraph/go-diff	v0.6.1	h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ=
		dep	github.com/spf13/afero	v1.6.0	h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
		dep	github.com/spf13/cast	v1.4.1	h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=
		dep	github.com/spf13/cobra	v1.2.1	h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=
		dep	github.com/spf13/jwalterweatherman	v1.1.0	h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
		dep	github.com/spf13/pflag	v1.0.5	h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
		dep	github.com/spf13/viper	v1.9.0	h1:yR6EXjTp0y0cLN8OZg1CRZmOBdI88UcGkhgyJhu6nZk=
		dep	github.com/ssgreg/nlreturn/v2	v2.2.1	h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0=
		dep	github.com/stretchr/objx	v0.1.1	h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
		dep	github.com/stretchr/testify	v1.7.0	h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
		dep	github.com/subosito/gotenv	v1.2.0	h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
		dep	github.com/sylvia7788/contextcheck	v1.0.4	h1:MsiVqROAdr0efZc/fOCt0c235qm9XJqHtWwM+2h2B04=
		dep	github.com/tdakkota/asciicheck	v0.0.0-20200416200610-e657995f937b	h1:HxLVTlqcHhFAz3nWUcuvpH7WuOMv8LQoCWmruLfFH2U=
		dep	github.com/tetafro/godot	v1.4.11	h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw=
		dep	github.com/timakin/bodyclose	v0.0.0-20200424151742-cb6215831a94	h1:ig99OeTyDwQWhPe2iw9lwfQVF1KB3Q4fpP3X7/2VBG8=
		dep	github.com/tomarrell/wrapcheck/v2	v2.4.0	h1:mU4H9KsqqPZUALOUbVOpjy8qNQbWLoLI9fV68/1tq30=
		dep	github.com/tommy-muehle/go-mnd/v2	v2.4.0	h1:1t0f8Uiaq+fqKteUR4N9Umr6E99R+lDnLnq7PwX2PPE=
		dep	github.com/ultraware/funlen	v0.0.3	h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA=
		dep	github.com/ultraware/whitespace	v0.0.4	h1:If7Va4cM03mpgrNH9k49/VOicWpGoG70XPBFFODYDsg=
		dep	github.com/uudashr/gocognit	v1.0.5	h1:rrSex7oHr3/pPLQ0xoWq108XMU8s678FJcQ+aSfOHa4=
		dep	github.com/yeya24/promlinter	v0.1.0	h1:goWULN0jH5Yajmu/K+v1xCqIREeB+48OiJ2uu2ssc7U=
		dep	golang.org/x/mod	v0.5.0	h1:UG21uOlmZabA4fW5i7ZX6bjw1xELEGg/ZLgZq9auk/Q=
		dep	golang.org/x/sys	v0.0.0-20211013075003-97ac67df715c	h1:taxlMj0D/1sOAuv/CbSD+MMDof2vbyPTqz5FNYKpXt8=
		dep	golang.org/x/text	v0.3.7	h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
		dep	golang.org/x/tools	v0.1.7	h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ=
		dep	golang.org/x/xerrors	v0.0.0-20200804184101-5ec99f83aff1	h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
		dep	google.golang.org/protobuf	v1.27.1	h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
		dep	gopkg.in/ini.v1	v1.63.2	h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c=
		dep	gopkg.in/yaml.v2	v2.4.0	h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
		dep	gopkg.in/yaml.v3	v3.0.0-20210107192922-496545a6307b	h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
		dep	honnef.co/go/tools	v0.2.1	h1:/EPr//+UMMXwMTkXvCCoaJDq8cpjMO80Ou+L4PDo2mY=
		dep	mvdan.cc/gofumpt	v0.1.1	h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=
		dep	mvdan.cc/interfacer	v0.0.0-20180901003855-c20040233aed	h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I=
		dep	mvdan.cc/lint	v0.0.0-20170908181259-adc824a0674b	h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo=
		dep	mvdan.cc/unparam	v0.0.0-20210104141923-aac4ce9116a7	h1:HT3e4Krq+IE44tiN36RvVEb6tvqeIdtsVSsxmNPqlFU=
	
	gopls:	/Users/jackbow/golang/bin/gopls: go1.17.2
		path	golang.org/x/tools/gopls
		mod	golang.org/x/tools/gopls	v0.7.3	h1:Lru57ht8vtDMouRskFC085VAjBAZRAISd/lwvwOOV0Q=
		dep	github.com/BurntSushi/toml	v0.3.1	h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
		dep	github.com/google/go-cmp	v0.5.6	h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
		dep	github.com/sergi/go-diff	v1.1.0	h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
		dep	golang.org/x/mod	v0.4.2	h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
		dep	golang.org/x/sync	v0.0.0-20210220032951-036812b2e83c	h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
		dep	golang.org/x/sys	v0.0.0-20210809222454-d867a43fc93e	h1:WUoyKPm6nCo1BnNUvPGnFG3T5DUVem42yDJZZ4CNxMA=
		dep	golang.org/x/text	v0.3.6	h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
		dep	golang.org/x/tools	v0.1.8-0.20211014194737-fc98fb2abd48	h1:hk7xRoeg0CG1nRLsd5BZLDUgVpA9bnKylGk1p2/BPH0=
		dep	golang.org/x/xerrors	v0.0.0-20200804184101-5ec99f83aff1	h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
		dep	honnef.co/go/tools	v0.2.0	h1:ws8AfbgTX3oIczLPNPCu5166oBg9ST2vNs0rcht+mDE=
		dep	mvdan.cc/gofumpt	v0.1.1	h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=
		dep	mvdan.cc/xurls/v2	v2.3.0	h1:59Olnbt67UKpxF1EwVBopJvkSUBmgtb468E4GVWIZ1I=
	

go env
Workspace Folder (os): /Users/jackbow/Documents/toggle/os
	GO111MODULE=""
	GOARCH="amd64"
	GOBIN="/Users/jackbow/golang/bin"
	GOCACHE="/Users/jackbow/Library/Caches/go-build"
	GOENV="/Users/jackbow/Library/Application Support/go/env"
	GOEXE=""
	GOEXPERIMENT=""
	GOFLAGS=""
	GOHOSTARCH="amd64"
	GOHOSTOS="darwin"
	GOINSECURE=""
	GOMODCACHE="/Users/jackbow/golang/pkg/mod"
	GONOPROXY=""
	GONOSUMDB=""
	GOOS="darwin"
	GOPATH="/Users/jackbow/golang"
	GOPRIVATE=""
	GOPROXY="https://proxy.golang.org,direct"
	GOROOT="/usr/local/opt/go/libexec"
	GOSUMDB="sum.golang.org"
	GOTMPDIR=""
	GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
	GOVCS=""
	GOVERSION="go1.17.2"
	GCCGO="gccgo"
	AR="ar"
	CC="clang"
	CXX="clang++"
	CGO_ENABLED="1"
	GOMOD="/Users/jackbow/Documents/toggle/os/go.mod"
	CGO_CFLAGS="-g -O2"
	CGO_CPPFLAGS=""
	CGO_CXXFLAGS="-g -O2"
	CGO_FFLAGS="-g -O2"
	CGO_LDFLAGS="-g -O2"
	PKG_CONFIG="pkg-config"
	GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/zn/kssx47ln6p9_03_s1cw997lw0000gn/T/go-build164560847=/tmp/go-build -gno-record-gcc-switches -fno-common"

Share the Go related settings you have added/edited

Run Preferences: Open Settings (JSON) command to open your settings.json file.
Share all the settings with the go. or ["go"] or gopls prefixes.

{
  "go.testEnvFile": ".env",
  "go.lintTool": "golangci-lint",
  "go.useLanguageServer": true,
  "gopls": {
    "formatting.gofumpt": true,
  },
}

Describe the bug

A clear and concise description of what the bug.
A clear and concise description of what you expected to happen.

When using environmental variables with tests (setting "go.testEnvFile": ".env"), if the env file contains variables built off of others, they don't get replaced. Eg. If you have the following:

PORT=1234
DB_URL=localhost:$PORT

What gets loaded into the environment for the DB_URL is the literal string "localhost:$PORT" without substitution.

Additionally, the only mention of how to use environmental variables for tests is the final two comments on this PR implementing it. It should be added to docs somewhere.

Steps to reproduce the behavior:

  1. Clone 'jackbow/vscode-go-test-env-bug'
  2. Click on debug test
  3. See output as described in screenshot

Screenshots or recordings

If applicable, add screenshots or recordings to help explain your problem.

Screen Shot 2021-11-19 at 10 39 06 AM

@gopherbot gopherbot added this to the Untriaged milestone Nov 19, 2021
@hyangah
Copy link
Contributor

hyangah commented Nov 22, 2021

Python extension supports a similar feature and seems convenient. https://code.visualstudio.com/docs/python/environments#_environment-variable-definitions-file

We've been relying on VSCode's variable substitution functionality but envFile read/parse happens after VSCode's variable substitution has occurred. That's because envFile attribute value can also depend on variable substitution - "envFile": ${workspaceFolder}/myEnvFile.

In order to implement this feature, the extension needs to implement its own envFile parsing. I don't think we can implement all the substitution VSCode offers (unless VSCode exposes the variable substitution logic as an API), but we can do what Python extension offers (e.g. handle ${env:...})

For example, here we call parseEnvFile.
We can consider to change the implementation of parseEnvFile like Python's parseEnvFile that does variable substitution too.

@hyangah hyangah modified the milestones: Untriaged, Unplanned Nov 22, 2021
@hyangah hyangah added the HelpWanted Issues that are not prioritized by the maintainers. Help is requested from community contributors. label Nov 22, 2021
@n1lesh
Copy link
Contributor

n1lesh commented Nov 25, 2021

@hyangah Would it be okay if give it a try, given the issue is still open?

On a side note: Simply adding a func and doing this to substitute variables should work, right?

env[r[1]] = substituteEnvVars(v, env);

While this works for me when I tried to use Python's substituteEnvVars to replace ${PORT}, it would be great to have your input.

@hyangah
Copy link
Contributor

hyangah commented Nov 29, 2021

@n1lesh Great. Help is greatly appreciated!

Hmm, indeed, python's substituteEnvVars implementation offers is slightly different from the description in the user documentation. I am confused.

I think adding substituteEnvVars like python and call it for each line read from env file should work. You will need to pass baseline env vars equivalent to globalVars (probably toolsExecutionEnvVars) too to pick up env vars defined in the global vars.

@polinasok polinasok added Debug Issues related to the debugging functionality of the extension. debug/config Issues for config discrepancies b/n settings.json, launch.json, launch with F5, run test, debug test labels Mar 30, 2022
@gopherbot
Copy link
Collaborator

Change https://go.dev/cl/383220 mentions this issue: src/envutils.ts: Substitute nested env vars in env files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
debug/config Issues for config discrepancies b/n settings.json, launch.json, launch with F5, run test, debug test Debug Issues related to the debugging functionality of the extension. FeatureRequest HelpWanted Issues that are not prioritized by the maintainers. Help is requested from community contributors.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants