我正在学习围棋,所以我写了一些基本的实用程序和库,我可以在其他模块中重用。
当在另一个模块中导入它们时(例如使用go get),我可以很好地使用它们。
据我所知,Go语言在运行一个go应用程序/模块时,会寻找一个包main和一个main函数来确定入口点。
问题是这些库不在"package main"中,不在main.go
中,也没有main
函数,那么我应该如何使用cli和go run .
来测试我的函数的行为呢?
我是否一定要在package main
中创建另一个包含main.go
文件的模块?还是需要创建一个测试文件并使用go test
?
谢谢大家!
2条答案
按热度按时间3htmauhk1#
非主包(即库包)不可运行。
要运行它们中的代码,你必须运行一个主包来导入和运行它们的代码,或者在
_test.go
文件中编写测试函数来运行代码。你可以在它们里面写任何你想写的东西,而且它们通常比创建一个新的主包来测试要容易。现代IDE现在允许你在调试模式下轻松地运行单个测试,这样你就可以单步调试你的代码,看看它是否按照你期望的方式工作。如果你更喜欢打印调试和从命令行做任何事情,你仍然可以运行单个测试,并看到如下所示的打印输出:
qv7cva1a2#
Go语言测试是测试Go语言代码的首选方法。
如果出于某种原因不想使用
go test
,则使用build constraints和go run命令从与软件包相同的目录中执行主程序。下面是一个带有构建约束的示例程序。将文件放在与包源文件相同的目录中。注解
//go:build ignore
是一个构建约束,它将文件从包源文件中排除。假设上面的文件名为
program.go
,使用以下命令从包目录运行程序:go run
命令对于运行类似这样的玩具或测试程序是可以的。对于其他任何东西,首选go build
命令。