Testing 测试中的标志会导致其他测试无法运行

Testing 测试中的标志会导致其他测试无法运行,testing,go,Testing,Go,我有一个测试文件,我只想在设置位标志时运行。我遵循以下简单示例: 如果我运行go test./mypkg-myflag它将按预期运行。但是,当我运行go test./-myflag,所有其他包测试失败: flag provided but not defined: -myflag 我希望能够运行所有测试,而不必担心在每个测试文件中解析这个标志。是否有一种方法可以做到这一点,但我没有找到?当您运行test./…时,它使用相同的参数将每个包作为单独的可执行文件运行测试。因此,如果您想向每个包传递一

我有一个测试文件,我只想在设置位标志时运行。我遵循以下简单示例:

如果我运行
go test./mypkg-myflag
它将按预期运行。但是,当我运行
go test./-myflag
,所有其他包测试失败:

flag provided but not defined: -myflag

我希望能够运行所有测试,而不必担心在每个测试文件中解析这个标志。是否有一种方法可以做到这一点,但我没有找到?

当您运行
test./…
时,它使用相同的参数将每个包作为单独的可执行文件运行测试。因此,如果您想向每个包传递一个标志,那么每个包都必须接受它。您可能希望改用env var,使用它的包可以读取它,而不使用它的包可以忽略它。

bummer。这使得向测试添加标志看起来非常脆弱。我要走环保路线。谢谢你可能忽略了内置的吗?是的,我读过关于
-short
标志的文章,这很好。但是,我希望我的特定测试只能在选择加入的基础上运行,而不是在选择退出的基础上运行。由于默认情况下,
-short
标志处于关闭状态,我将检查它是否已设置,在我的情况下,将这些测试归类为“short”测试是没有意义的(更像是集成或e2e场景)
flag provided but not defined: -myflag