我在使用gocheck运行测试时遇到问题。我需要传递一个标志来指定运行哪个测试,例如。Golang冲突的命令行标志
我的测试文件导入了一个设置包,其中有一个init()
函数,它指定了它自己的标记并调用了flag.parseFlags()
。我遇到的问题是,这似乎是覆盖gocheck标志,所以我得到一个错误,标志-gocheck.f不被识别。
注意:不确定这是否相关,但它只发生在我的一些软件包中,而不发生在其他软件包中。我认为这只是基于订单决定导入软件包,但我想我会提到它,以防万一这是相关的。
有没有其他人遇到这个问题?有没有一种简单的方法可以让所有的标志合并而不会被破坏,或者让gocheck标志优先于我的自定义标志?
谢谢。我实际上通过将gocheck匿名导入到我的设置文件中来修正了试验和错误的代码,现在所有的标志一起工作。在阅读你的答案并查看gocheck源代码后,我明白为什么这会起作用 - gocheck从不调用flag.Parse(),所以我只需确保gocheck在调用settings.init()方法之前就被导入,并且所有的标志都会一起工作。好的建议虽然只是解析主标记,但我会为未来记住这一点。 – danny