gotests | generate Go test functions from the given source code

 by   tcnksm Go Version: Current License: MIT

kandi X-RAY | gotests Summary

gotests is a Go library. gotests has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.
This project is no longer maintained. Use for the similar purpose.
    Support
      Quality
        Security
          License
            Reuse
            Support
              Quality
                Security
                  License
                    Reuse

                      kandi-support Support

                        summary
                        gotests has a low active ecosystem.
                        summary
                        It has 271 star(s) with 9 fork(s). There are 7 watchers for this library.
                        summary
                        It had no major release in the last 6 months.
                        summary
                        gotests has no issues reported. There are no pull requests.
                        summary
                        It has a neutral sentiment in the developer community.
                        summary
                        The latest version of gotests is current.
                        gotests Support
                          Best in #Go
                            Average in #Go
                            gotests Support
                              Best in #Go
                                Average in #Go

                                  kandi-Quality Quality

                                    summary
                                    gotests has no bugs reported.
                                    gotests Quality
                                      Best in #Go
                                        Average in #Go
                                        gotests Quality
                                          Best in #Go
                                            Average in #Go

                                              kandi-Security Security

                                                summary
                                                gotests has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
                                                gotests Security
                                                  Best in #Go
                                                    Average in #Go
                                                    gotests Security
                                                      Best in #Go
                                                        Average in #Go

                                                          kandi-License License

                                                            summary
                                                            gotests is licensed under the MIT License. This license is Permissive.
                                                            summary
                                                            Permissive licenses have the least restrictions, and you can use them in most projects.
                                                            gotests License
                                                              Best in #Go
                                                                Average in #Go
                                                                gotests License
                                                                  Best in #Go
                                                                    Average in #Go

                                                                      kandi-Reuse Reuse

                                                                        summary
                                                                        gotests releases are not available. You will need to build from source code and install.
                                                                        gotests Reuse
                                                                          Best in #Go
                                                                            Average in #Go
                                                                            gotests Reuse
                                                                              Best in #Go
                                                                                Average in #Go
                                                                                  Top functions reviewed by kandi - BETA
                                                                                  kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
                                                                                  Currently covering the most popular Java, JavaScript and Python libraries. See a Sample Here
                                                                                  Get all kandi verified functions for this library.
                                                                                  Get all kandi verified functions for this library.

                                                                                  gotests Key Features

                                                                                  [Archived] A tool to generate Go test functions from the given source code like gofmt

                                                                                  gotests Examples and Code Snippets

                                                                                  No Code Snippets are available at this moment for gotests.
                                                                                  Community Discussions

                                                                                  Trending Discussions on gotests

                                                                                  Go migrate will not install on MacOS
                                                                                  chevron right
                                                                                  code-generator is not getting downloaded to vendor folder
                                                                                  chevron right
                                                                                  Unable to read variables from a url using gorilla mux in golang
                                                                                  chevron right
                                                                                  VS Code can't install the Go tools
                                                                                  chevron right
                                                                                  DB.Exec args always results in an error for my placeholder
                                                                                  chevron right
                                                                                  golang how to live test an http server?
                                                                                  chevron right

                                                                                  QUESTION

                                                                                  Go migrate will not install on MacOS
                                                                                  Asked 2020-Sep-25 at 14:16

                                                                                  Mac OS here. I have Go version go1.14.2 darwin/amd64 installed locally under ~/go and in my ~/.bash_profile I have:

                                                                                  export PATH=$PATH:/usr/local/go/bin
                                                                                  export PATH=$PATH:/Users/myuser/workspace/myproject/repos
                                                                                  export PATH="$GOPATH/bin:$PATH"
                                                                                  
                                                                                  export GOPATH=/Users/myuser/workspace/myproject/repos
                                                                                  
                                                                                  export PATH=$PATH:/Users/myuser/workspace/myproject/repos/bin
                                                                                  

                                                                                  I am trying to get go migrate working. When I run:

                                                                                  go get -tags 'postgres' -u github.com/golang-migrate/migrate/v4/cmd/migrate
                                                                                  

                                                                                  I get:

                                                                                  $ go migrate
                                                                                  go migrate: unknown command
                                                                                  

                                                                                  So then I tried downloading the binary directly off of GitHub and have copied it to /Users/myuser/workspace/myproject/repos/bin/:

                                                                                  $ ls -al ~/myuser/myproject/repos/bin/
                                                                                  total 391744
                                                                                  drwxr-xr-x  22 myuser  staff       704 Sep 22 12:41 .
                                                                                  drwxr-xr-x  18 myuser  staff       576 Aug 20 05:41 ..
                                                                                  -rwxr-xr-x   1 myuser  staff  18485484 Jun 15 12:38 dlv
                                                                                  -rwxr-xr-x   1 myuser  staff   6790688 Jun 15 12:38 fillstruct
                                                                                  -rwxr-xr-x   1 myuser  staff   4588168 Jun 15 12:37 go-outline
                                                                                  -rwxr-xr-x   1 myuser  staff   4385080 Jun 15 12:37 go-symbols
                                                                                  -rwxr-xr-x   1 myuser  staff  13219700 Jun 15 12:37 gocode
                                                                                  -rwxr-xr-x   1 myuser  staff  12768972 Jun 15 12:38 gocode-gomod
                                                                                  -rwxr-xr-x   1 myuser  staff   9168808 Jun 15 12:38 godef
                                                                                  -rwxr-xr-x   1 myuser  staff   8031416 Jun 15 12:38 godoctor
                                                                                  -rwxr-xr-x   1 myuser  staff   5851000 Jun 15 12:38 goimports
                                                                                  -rwxr-xr-x   1 myuser  staff   6301816 Jun 15 12:38 golint
                                                                                  -rwxr-xr-x   1 myuser  staff   4678536 Jun 15 12:37 gomodifytags
                                                                                  -rwxr-xr-x   1 myuser  staff   5448568 Jun 15 12:37 gopkgs
                                                                                  -rwxr-xr-x   1 myuser  staff   7438724 Jun 15 12:38 goplay
                                                                                  -rwxr-xr-x   1 myuser  staff   6291392 Jun 15 12:37 gorename
                                                                                  -rwxr-xr-x   1 myuser  staff   7990696 Jun 15 12:38 goreturns
                                                                                  -rwxr-xr-x   1 myuser  staff  13191844 Jun 15 12:37 gotests
                                                                                  -rwxr-xr-x   1 myuser  staff   9443888 Jun 15 12:37 guru
                                                                                  -rwxr-xr-x   1 myuser  staff   6060712 Jun 15 12:37 impl
                                                                                  -rwxr-xr-x@  1 myuser  staff  41461192 Aug  3 21:34 migrate.darwin-amd64
                                                                                  -rwxr-xr-x   1 myuser  staff   7896368 Jun 25 05:27 mockgen
                                                                                  

                                                                                  But still, when I run go migrate I get errors:

                                                                                  $ go migrate
                                                                                  go migrate: unknown command
                                                                                  

                                                                                  Given where I have Go downloaded and all my path settings, which I really don't want to change, how can I install go migrate successfully and make it work from the command line?

                                                                                  When I run:

                                                                                  $ which migrate
                                                                                  $ 
                                                                                  

                                                                                  So it is not installed.

                                                                                  ANSWER

                                                                                  Answered 2020-Sep-25 at 14:03

                                                                                  It's actually called migrate, you can check its location by running which migrate or command -v migrate, or call binary from your bin folder migrate.darwin-amd64

                                                                                  Source https://stackoverflow.com/questions/64065595

                                                                                  QUESTION

                                                                                  code-generator is not getting downloaded to vendor folder
                                                                                  Asked 2020-May-25 at 17:32

                                                                                  I am trying to create a CRD following the instructions here + using go modules.

                                                                                  My go.mod looks like this:

                                                                                  module github.com/v*****va/kustred
                                                                                  
                                                                                  go 1.14
                                                                                  
                                                                                  require (
                                                                                          github.com/golangci/golangci-lint v1.25.0 // indirect
                                                                                          github.com/google/go-cmp v0.4.0 // indirect
                                                                                          github.com/json-iterator/go v1.1.9 // indirect
                                                                                          github.com/kr/pretty v0.2.0 // indirect
                                                                                          golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2 // indirect
                                                                                          gopkg.in/yaml.v2 v2.3.0 // indirect
                                                                                          gotest.tools/gotestsum v0.4.2 // indirect
                                                                                          k8s.io/apimachinery v0.18.3
                                                                                          k8s.io/code-generator v0.18.3 // indirect
                                                                                  )
                                                                                  

                                                                                  After I ran go mod vendor, I looked at the contents of vendor/k8s.io/, I see that only apimachinery and klog are present, code-generator is missing. I am not sure about relevance of vendor.moudles.txt but there is a line about code-generator commented out.

                                                                                  Am i missing something?

                                                                                  ANSWER

                                                                                  Answered 2020-May-25 at 17:32

                                                                                  It's indirect in this module file, so probably not needed (not imported by your code). That's why it's unnecessary to vendor.

                                                                                  It's tracked because it's a dependency of your machinery dependency but actually packages you're using from machinery don't need packages from code-generator.

                                                                                  If you want to vendor it explicitly, you can do a blank import somewhere in your code such that

                                                                                  import _ "k8s.io/code-generator"
                                                                                  

                                                                                  Source https://stackoverflow.com/questions/62006347

                                                                                  QUESTION

                                                                                  Unable to read variables from a url using gorilla mux in golang
                                                                                  Asked 2020-Jan-22 at 06:20

                                                                                  I am trying to write a unit test using gotests and gomock to my restful service written in golang using gorilla but service fails to get variables from the url

                                                                                  Here is my request

                                                                                  req, err := http.NewRequest("GET", "product/5b5758f9931653c36bcaf0a0", nil)
                                                                                  

                                                                                  actual endpoint is product/{id}

                                                                                  when I step into my service at the below code

                                                                                  params := mux.Vars(req)
                                                                                  

                                                                                  params map is empty when it should have id key mapped to 5b5758f9931653c36bcaf0a0

                                                                                  Strange part is endpoint works fine from post man.

                                                                                  May I know whats wrong with the request?

                                                                                  ANSWER

                                                                                  Answered 2018-Jul-25 at 19:17

                                                                                  Since you're using GET requests, you can use the http.Get function, it works as expected:

                                                                                  package main
                                                                                  
                                                                                  import (
                                                                                      "fmt"
                                                                                      "net/http"
                                                                                  
                                                                                      "github.com/gorilla/mux"
                                                                                  )
                                                                                  
                                                                                  func handle(w http.ResponseWriter, r *http.Request) {
                                                                                      params := mux.Vars(r)
                                                                                      fmt.Println(params)
                                                                                  }
                                                                                  
                                                                                  func main() {
                                                                                      m := mux.NewRouter()
                                                                                      m.HandleFunc("/products/{id}", handle)
                                                                                      http.Handle("/", m)
                                                                                      go func() {
                                                                                          http.ListenAndServe(":8080", nil)
                                                                                      }()
                                                                                      _, err := http.Get("http://localhost:8080/products/765")
                                                                                      // Handle Error
                                                                                  }
                                                                                  

                                                                                  If you really want to use http.NewRequest, that function doesn't actually execute the request so here is what you would need:

                                                                                  req, err := http.NewRequest("GET", "product/5b5758f9931653c36bcaf0a0", nil)
                                                                                  client := &http.Client{}
                                                                                  client.Do(req)
                                                                                  

                                                                                  Source https://stackoverflow.com/questions/51521868

                                                                                  QUESTION

                                                                                  VS Code can't install the Go tools
                                                                                  Asked 2019-Feb-27 at 05:10

                                                                                  I try to start using Go in VSCode. I've installed Go as well as Git and created a project in Code, containing a single .go file.

                                                                                  When I type something, VSCode warns me that tools like golint are missing and prompts me to install them. I click on "Install all".

                                                                                  Then the console shows this :

                                                                                  Installing 10 tools
                                                                                    gocode
                                                                                    gopkgs
                                                                                    go-outline
                                                                                    go-symbols
                                                                                    guru
                                                                                    gorename
                                                                                    godef
                                                                                    goreturns
                                                                                    golint
                                                                                    gotests
                                                                                  
                                                                                  Installing gocode SUCCEEDED
                                                                                  Installing gopkgs SUCCEEDED
                                                                                  Installing go-outline SUCCEEDED
                                                                                  Installing go-symbols FAILED
                                                                                  Installing guru FAILED
                                                                                  Installing gorename FAILED
                                                                                  Installing godef SUCCEEDED
                                                                                  Installing goreturns FAILED
                                                                                  Installing golint FAILED
                                                                                  Installing gotests FAILED
                                                                                  
                                                                                  6 tools failed to install.
                                                                                  
                                                                                  go-symbols:
                                                                                  Error: Command failed: C:\Go\bin\go.exe get -u -v github.com/newhook/go-symbols
                                                                                  github.com/newhook/go-symbols (download)
                                                                                  Fetching https://golang.org/x/tools/go/buildutil?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/go/buildutil?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/go/buildutil": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/buildutil?go-get=1
                                                                                  get "golang.org/x/tools/go/buildutil": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/go/buildutil: exit status 128
                                                                                  github.com/newhook/go-symbols (download)
                                                                                  Fetching https://golang.org/x/tools/go/buildutil?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/go/buildutil?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/go/buildutil": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/buildutil?go-get=1
                                                                                  get "golang.org/x/tools/go/buildutil": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/go/buildutil: exit status 128
                                                                                  
                                                                                  guru:
                                                                                  Error: Command failed: C:\Go\bin\go.exe get -u -v golang.org/x/tools/cmd/guru
                                                                                  Fetching https://golang.org/x/tools/cmd/guru?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/cmd/guru?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/cmd/guru": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/guru?go-get=1
                                                                                  get "golang.org/x/tools/cmd/guru": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/cmd/guru: exit status 128
                                                                                  Fetching https://golang.org/x/tools/cmd/guru?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/cmd/guru?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/cmd/guru": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/guru?go-get=1
                                                                                  get "golang.org/x/tools/cmd/guru": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/cmd/guru: exit status 128
                                                                                  
                                                                                  gorename:
                                                                                  Error: Command failed: C:\Go\bin\go.exe get -u -v golang.org/x/tools/cmd/gorename
                                                                                  Fetching https://golang.org/x/tools/cmd/gorename?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/cmd/gorename?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/cmd/gorename": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/gorename?go-get=1
                                                                                  get "golang.org/x/tools/cmd/gorename": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/cmd/gorename: exit status 128
                                                                                  Fetching https://golang.org/x/tools/cmd/gorename?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/cmd/gorename?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/cmd/gorename": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/gorename?go-get=1
                                                                                  get "golang.org/x/tools/cmd/gorename": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/cmd/gorename: exit status 128
                                                                                  
                                                                                  goreturns:
                                                                                  Error: Command failed: C:\Go\bin\go.exe get -u -v sourcegraph.com/sqs/goreturns
                                                                                  Fetching https://sourcegraph.com/sqs/goreturns?go-get=1
                                                                                  Parsing meta tags from https://sourcegraph.com/sqs/goreturns?go-get=1 (status code 200)
                                                                                  get "sourcegraph.com/sqs/goreturns": found meta tag main.metaImport{Prefix:"sourcegraph.com/sqs/goreturns", VCS:"git", RepoRoot:"https://github.com/sqs/goreturns"} at https://sourcegraph.com/sqs/goreturns?go-get=1
                                                                                  sourcegraph.com/sqs/goreturns (download)
                                                                                  github.com/sqs/goreturns (download)
                                                                                  Fetching https://golang.org/x/tools/imports?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/imports?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/imports": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/imports?go-get=1
                                                                                  get "golang.org/x/tools/imports": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/imports: exit status 128
                                                                                  Fetching https://sourcegraph.com/sqs/goreturns?go-get=1
                                                                                  Parsing meta tags from https://sourcegraph.com/sqs/goreturns?go-get=1 (status code 200)
                                                                                  get "sourcegraph.com/sqs/goreturns": found meta tag main.metaImport{Prefix:"sourcegraph.com/sqs/goreturns", VCS:"git", RepoRoot:"https://github.com/sqs/goreturns"} at https://sourcegraph.com/sqs/goreturns?go-get=1
                                                                                  sourcegraph.com/sqs/goreturns (download)
                                                                                  github.com/sqs/goreturns (download)
                                                                                  Fetching https://golang.org/x/tools/imports?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/imports?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/imports": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/imports?go-get=1
                                                                                  get "golang.org/x/tools/imports": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/imports: exit status 128
                                                                                  
                                                                                  golint:
                                                                                  Error: Command failed: C:\Go\bin\go.exe get -u -v github.com/golang/lint/golint
                                                                                  github.com/golang/lint (download)
                                                                                  Fetching https://golang.org/x/tools/go/gcexportdata?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/go/gcexportdata?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/go/gcexportdata": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/gcexportdata?go-get=1
                                                                                  get "golang.org/x/tools/go/gcexportdata": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/go/gcexportdata: exit status 128
                                                                                  github.com/golang/lint (download)
                                                                                  Fetching https://golang.org/x/tools/go/gcexportdata?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/go/gcexportdata?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/go/gcexportdata": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/gcexportdata?go-get=1
                                                                                  get "golang.org/x/tools/go/gcexportdata": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/go/gcexportdata: exit status 128
                                                                                  
                                                                                  gotests:
                                                                                  Error: Command failed: C:\Go\bin\go.exe get -u -v github.com/cweill/gotests/...
                                                                                  github.com/cweill/gotests (download)
                                                                                  Fetching https://golang.org/x/tools/imports?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/imports?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/imports": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/imports?go-get=1
                                                                                  get "golang.org/x/tools/imports": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/imports: exit status 128
                                                                                  github.com/cweill/gotests (download)
                                                                                  Fetching https://golang.org/x/tools/imports?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools/imports?go-get=1 (status code 200)
                                                                                  get "golang.org/x/tools/imports": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/imports?go-get=1
                                                                                  get "golang.org/x/tools/imports": verifying non-authoritative meta tag
                                                                                  Fetching https://golang.org/x/tools?go-get=1
                                                                                  Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
                                                                                  golang.org/x/tools (download)
                                                                                  # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
                                                                                  fatal: Not a git repository (or any of the parent directories): .git
                                                                                  package golang.org/x/tools/imports: exit status 128
                                                                                  

                                                                                  Some tools are able to install, others are not. I can't do anything about the Not a git repository error because it's an automated process and I'm not the one typing the git commands.

                                                                                  I tried installing the tools separately in PowerShell and I get the same errors. My go directory is created (in %USERPROFILE%\go) and the GOPATH is set correctly.

                                                                                  Any ideas ?

                                                                                  ANSWER

                                                                                  Answered 2017-Mar-25 at 17:23

                                                                                  It looks like it's complaining due to C:\Users\user\go\src\golang.org\x\tools being not a git repo, so it can't update whatever is in it.

                                                                                  Assuming you didn't put your own code in that dir, try removing it and then running again.

                                                                                  If you look at the docs for the Go plugin, and scroll all the way to the bottom, it shows the commands to run if you want to manually install/upgrade the stuff the plugin needs.

                                                                                  Specifically, taken from their github repo, you can just run this from a cmd.exe prompt.

                                                                                  go get -u -v github.com/nsf/gocode
                                                                                  go get -u -v github.com/rogpeppe/godef
                                                                                  go get -u -v github.com/zmb3/gogetdoc
                                                                                  go get -u -v github.com/golang/lint/golint
                                                                                  go get -u -v github.com/lukehoban/go-outline
                                                                                  go get -u -v sourcegraph.com/sqs/goreturns
                                                                                  go get -u -v golang.org/x/tools/cmd/gorename
                                                                                  go get -u -v github.com/tpng/gopkgs
                                                                                  go get -u -v github.com/newhook/go-symbols
                                                                                  go get -u -v golang.org/x/tools/cmd/guru
                                                                                  go get -u -v github.com/cweill/gotests/...
                                                                                  go get -u -v golang.org/x/tools/cmd/godoc
                                                                                  go get -u -v github.com/fatih/gomodifytags
                                                                                  

                                                                                  Source https://stackoverflow.com/questions/43018667

                                                                                  QUESTION

                                                                                  DB.Exec args always results in an error for my placeholder
                                                                                  Asked 2018-May-07 at 03:15

                                                                                  I have an SQL script with a variable I want to set from Golang.

                                                                                  SET @foo_bar_invitation_id = ?;
                                                                                  SELECT @foo_bar_invitation_id;
                                                                                  

                                                                                  I.e. I want to set ? to "foobar". My code:

                                                                                  package main
                                                                                  
                                                                                  import (
                                                                                          "io/ioutil"
                                                                                          "log"
                                                                                  
                                                                                          "database/sql"
                                                                                  
                                                                                          _ "github.com/go-sql-driver/mysql"
                                                                                  )
                                                                                  
                                                                                  type handler struct{ db *sql.DB }
                                                                                  
                                                                                  func (h handler) runsql() (err error) {
                                                                                          sqlscript, err := ioutil.ReadFile("script.sql")
                                                                                          if err != nil {
                                                                                                  return
                                                                                          }
                                                                                          _, err = h.db.Exec(string(sqlscript), "foobar")
                                                                                          if err != nil {
                                                                                                  log.Println(err)
                                                                                          }
                                                                                          return
                                                                                  }
                                                                                  

                                                                                  Always results in Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT @foo_bar_invitation_id' at line 2

                                                                                  I test via code generated by gotests:

                                                                                  import (
                                                                                          "database/sql"
                                                                                          "os"
                                                                                          "testing"
                                                                                  
                                                                                          _ "github.com/go-sql-driver/mysql"
                                                                                  )
                                                                                  
                                                                                  var db *sql.DB
                                                                                  
                                                                                  func TestMain(m *testing.M) {
                                                                                          db, _ = sql.Open("mysql", os.Getenv("DSN"))
                                                                                          defer db.Close()
                                                                                          os.Exit(m.Run())
                                                                                  }
                                                                                  
                                                                                  func Test_handler_runsql(t *testing.T) {
                                                                                          type fields struct {
                                                                                                  db *sql.DB
                                                                                          }
                                                                                          tests := []struct {
                                                                                                  name    string
                                                                                                  fields  fields
                                                                                                  wantErr bool
                                                                                          }{{
                                                                                                  "Check ID can be set",
                                                                                                  fields{db: db},
                                                                                                  false,
                                                                                          }}
                                                                                          for _, tt := range tests {
                                                                                                  t.Run(tt.name, func(t *testing.T) {
                                                                                                          h := handler{
                                                                                                                  db: tt.fields.db,
                                                                                                          }
                                                                                                          if err := h.runsql(); (err != nil) != tt.wantErr {
                                                                                                                  t.Errorf("handler.step2runsql() error = %v, wantErr %v", err, tt.wantErr)
                                                                                                          }
                                                                                                  })
                                                                                          }
                                                                                  }
                                                                                  

                                                                                  My DSN connection string includes ?multiStatements=true&sql_mode=TRADITIONAL.

                                                                                  I'm hoping I just do not understand how DB.Exec args interpolation / placeholder works, but I am finding it difficult to find examples.

                                                                                  ANSWER

                                                                                  Answered 2018-May-07 at 03:15

                                                                                  QUESTION

                                                                                  golang how to live test an http server?
                                                                                  Asked 2017-Nov-21 at 08:45

                                                                                  I use gotests, and gorilla mux and I can unit test my http handlefunc handlers, but they do not respond to the proper http request methods as they should under the gorilla mux. How I can do a "live server" version of the test?

                                                                                  func main() {
                                                                                      router := mux.NewRouter()
                                                                                      router.HandleFunc("/", views.Index).Methods("GET")
                                                                                  }
                                                                                  
                                                                                  func Index(w http.ResponseWriter, r *http.Request) {
                                                                                      w.Header().Set("Content-Type", "application/json; charset=UTF-8")
                                                                                      w.WriteHeader(http.StatusOK)
                                                                                  
                                                                                      fmt.Fprintf(w, "INDEX\n")
                                                                                  }
                                                                                  
                                                                                  func TestIndex(t *testing.T) {
                                                                                  
                                                                                      req, _ := http.NewRequest("GET", "/", nil)
                                                                                      req1, _ := http.NewRequest("POST", "/", nil)
                                                                                      rr := httptest.NewRecorder()
                                                                                  
                                                                                      handler := http.HandlerFunc(Index)
                                                                                  
                                                                                      type args struct {
                                                                                          w http.ResponseWriter
                                                                                          r *http.Request
                                                                                      }
                                                                                      tests := []struct {
                                                                                          name string
                                                                                          args args
                                                                                      }{
                                                                                          {name: "1: testing get", args: args{w: rr, r: req}},
                                                                                          {name: "2: testing post", args: args{w: rr, r: req1}},
                                                                                      }
                                                                                      for _, tt := range tests {
                                                                                          t.Run(tt.name, func(t *testing.T) {
                                                                                              handler.ServeHTTP(tt.args.w, tt.args.r)
                                                                                              log.Println(tt.args.w)
                                                                                          })
                                                                                      }
                                                                                  }
                                                                                  

                                                                                  The problem here is that the function responds to both the get and post requests and doens't take into account my main router. This is fine for unit testing the function, but I think it would be better to just write an integrated test that tests the whole thing and gets everything out of the way in one go.

                                                                                  ANSWER

                                                                                  Answered 2017-Nov-21 at 08:45

                                                                                  Use the net/http/httptest.Server type to test with a live server.

                                                                                  func TestIndex(t *testing.T) {
                                                                                    // Create server using the a router initialized elsewhere. The router
                                                                                    // can be a Gorilla mux as in the question, a net/http ServeMux, 
                                                                                    // http.DefaultServeMux or any value that statisfies the net/http
                                                                                    // Handler interface.
                                                                                    ts := httptest.NewServer(router)  
                                                                                    defer ts.Close()
                                                                                  
                                                                                    newreq := func(method, url string, body io.Reader) *http.Request {
                                                                                      r, err := http.NewRequest(method, url, body)
                                                                                      if err != nil {
                                                                                          t.Fatal(err)
                                                                                      }
                                                                                      return r
                                                                                    }
                                                                                  
                                                                                    tests := []struct {
                                                                                      name string
                                                                                      r    *http.Request
                                                                                    }{
                                                                                      {name: "1: testing get", r: newreq("GET", ts.URL+"/", nil)},
                                                                                      {name: "2: testing post", r: newreq("POST", ts.URL+"/", nil)}, // reader argument required for POST
                                                                                    }
                                                                                    for _, tt := range tests {
                                                                                      t.Run(tt.name, func(t *testing.T) {
                                                                                          resp, err := http.DefaultClient.Do(tt.r)
                                                                                          defer resp.Body.Close()
                                                                                          if err != nil {
                                                                                              t.Fatal(err)
                                                                                          }
                                                                                          // check for expected response here.
                                                                                      })
                                                                                    }
                                                                                  }
                                                                                  

                                                                                  Although the question uses Gorilla mux, the approach and details in this answer apply to any router that satisfies the http.Handler interface.

                                                                                  Source https://stackoverflow.com/questions/42474259

                                                                                  Community Discussions, Code Snippets contain sources that include Stack Exchange Network

                                                                                  Vulnerabilities

                                                                                  No vulnerabilities reported

                                                                                  Install gotests

                                                                                  You can download it from GitHub.

                                                                                  Support

                                                                                  For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
                                                                                  Find more information at:
                                                                                  Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                  Find more libraries
                                                                                  Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                  Save this library and start creating your kit
                                                                                  CLONE
                                                                                • HTTPS

                                                                                  https://github.com/tcnksm/gotests.git

                                                                                • CLI

                                                                                  gh repo clone tcnksm/gotests

                                                                                • sshUrl

                                                                                  git@github.com:tcnksm/gotests.git

                                                                                • Share this Page

                                                                                  share link
                                                                                  Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                  Find more libraries
                                                                                  Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                  Save this library and start creating your kit