解析Go“测试”中的命令行参数
使用“go test”命令时,应用程序的主要功能不是调用,让开发人员想知道如何在测试中处理命令行参数。
尽管可以使用 flags 包并检查每个测试或函数中的参数,这种方法很麻烦,需要大量重复。
对于某些情况,绕过单元测试纯度并通过命令行传递参数可能是一个可以接受的解决方案,因为它提供了好处例如避免对环境变量的依赖并提供功能灵活性。
一种方法涉及在 _test 文件中定义 init() 函数。当测试套件执行时,将调用此函数并根据命令行参数初始化变量,模拟直接运行应用程序时主函数的行为。
或者,如果 flags 包是必需的根据要求,初始化代码可以放置在 testing.t 结构内的 init() 函数中。这允许在执行测试用例之前解析标志。
例如:
func init() { flag.Parse() envSetting = flag.String("env", "", "Environment setting") }
以上是如何解析 Go 测试中的命令行参数?的详细内容。更多信息请关注PHP中文网其他相关文章!