douduikai0562 2017-11-18 03:21
浏览 68
已采纳

Go单元测试正在运行从“ go get”命令导入的软件包

I imported a package "gopkg.in/yaml.v2". this is under directory structure

src/
  gopkg.in/
    yaml.v2
  main.go
  abc.go
  abc_test.go

when I run the command go test -v ./... during build time its running unit test from imported package gopkg.in/yaml.v2 as well. Which is not needed in my case.

I am new to Go and its testing framework. Did search in google for answer but could not find anything specific for this?

  • 写回答

1条回答 默认 最新

  • dongni8969 2017-11-18 08:27
    关注

    The go tool runs tests of all packages because you instruct it to.

    The 3 dots ... is a feature of the go tool, it means the given package and all packages found in its subfolders. Quoting from the doc of Command Go: Description of package lists:

    An import path is a pattern if it includes one or more "..." wildcards, each of which can match any string, including the empty string and strings containing slashes. Such a pattern expands to all package directories found in the GOPATH trees with names matching the patterns.

    To make common patterns more convenient, there are two special cases. First, /... at the end of the pattern can match an empty string, so that net/... matches both net and packages in its subdirectories, like net/http. Second, any slash-separated pattern element containing a wildcard never participates in a match of the "vendor" element in the path of a vendored package, so that ./... does not match packages in subdirectories of ./vendor or ./mycode/vendor, but ./vendor/... and ./mycode/vendor/... do. Note, however, that a directory named vendor that itself contains code is not a vendored package: cmd/vendor would be a command named vendor, and the pattern cmd/... matches it. See golang.org/s/go15vendor for more about vendoring.

    If you just want to run tests of your own package, don't append the ... to it. Navigate to your package, then run go test .. Or from any folder, run go test your/package.

    Of course to be able to do that (and it's recommended anyway), you should put your code into a package, and not into the $GOPATH/src folder directly. E.g. put it into the folder $GOPATH/src/my/example. Then you can test it like go test my/example.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分