Golang在子目录中进行testing
我想在Go中创build一个包,将包的testing和例子作为子目录来保持工作区的清洁。 这是可能的,如果是这样的话?
所有的文档总是把testing代码放在与其他代码相同的地方,这在某种程度上更好还是只是惯例?
谢谢。
请注意,您可以运行“recursion地”运行go test
:您需要列出所有要testing的软件包 。
如果您是Go项目的根文件夹,请键入:
go test ./...
“ 命令行 ”的“ 软件包列表说明 ”部分描述了 “。/ ./...
”符号:
一个导入path是一个模式,如果它包含一个或多个“
...
”通配符,每个通配符都可以匹配任何string,包括空string和包含斜杠的string。这种模式扩展到所有在
GOPATH
树中find的名称与模式匹配的包目录。作为一个特例,
x/...
匹配x
以及x
的子目录。
例如,net/...
扩展到net
并在其子目录中打包。
如果你把你的_test.go
文件保存在一个子文件夹中,那么' go test ./...
_test.go
go test ./...
'命令将能够把它们提取出来。
但:
- 您将需要在导出的variables和函数(在testing中使用)中添加您的软件包名称,以便testing文件能够访问软件包导出的内容。
- 你不会访问非导出的内容。
也就是说,我仍然希望将_test.go
文件放在主源文件的旁边:它更容易find。
把你的testing放在一个名为file_test.go
的文件的同一目录中,其中“file”是你正在testing的源代码文件的名称。 这是惯例,我发现它是我自己的经验最好的。
如果go test
工具对你来说不够自动化,那么你可能会考虑GoConvey ,它有一个Web UI,它将自动更新和运行传统的Gotesting以及GoConveytesting(这些testing是基于行为的,而且更自我 – 比传统的Gotestinglogging)。
我通常不做testing,但可以将文件分组到目录中,并使用导入
import "./models"
如果是一个级别
import "../models
如果是一级和一级
例如,对于:
./models/todo.go
./test/todo_test.go
从todo_test.go
testingtodo.go
,你的导入todo_test.go
将是
import "../models"
请尝试下面的github存储库。
https://github.com/appleboy/golang-testing
您可以下载golangtesting脚本。
$ curl -fsSL https://raw.githubusercontent.com/appleboy/golang-testing/master/coverage.sh /usr/local/bin/coverage $ chmod +x /usr/local/bin/coverage
- Execute Shell如何/何时在Jenkins中将构build标记为失败?
- 如何在java中创build空文件夹?
- MANIFEST.in忽略“python setup.py install” – 没有安装数据文件?
- 无法findVisual Studio 2013错误MS8020构build工具v140
- NoClassDefFoundError – Eclipse和Android
- 在多个同时上游工作成功之后,如何让Jenkins工作开始?
- JavaScript的Web应用程序和Java服务器,build立所有在Maven或使用Grunt的Web应用程序?
- 使用 – 系统而不是 – 我与CMake
- 什么是一些很棒的在线数据库build模工具?